Build niceness (original) (raw)

Aleksey Shipilev shade at redhat.com
Thu Oct 18 08:08:56 UTC 2018


Hi,

Is there any specific user story behind "nice"-ing the compilation jobs from within the build system?

It unfortunately clashes with priority budgeting. For example, my build server is used by me doing adhoc builds, automatic builds and some background tasks. The automatic build user has priority 10 set in /etc/security/limits.conf. The background user has priority 20 set in limits.conf. In theory, it sounds good: it would get all the CPU ad-hoc builds want, then give CPU to automatic build jobs, then to background jobs.

But then the build nice-s the compilation jobs, which drops its priority down to the priority of background jobs:

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND

25966 backgro+ 39 19 808872 460772 2440 R 97.0 1.4 4181:54 R

25968 backgro+ 39 19 808872 460588 2340 R 97.0 1.4 4181:17 R

25965 backgro+ 39 19 808872 460864 2680 R 93.4 1.4 4180:29 R

30998 buildbot 39 19 6688224 1.050g 20000 S 64.8 3.4 4:58.52 java

27518 buildbot 39 19 2915828 110884 21740 S 47.0 0.3 0:02.57 javac

26802 buildbot 39 19 290900 264792 17392 R 38.2 0.8 0:05.48 cc1plus

27486 buildbot 39 19 200296 171792 18440 R 30.6 0.5 0:01.96 cc1plus

...which wrecks up this story. Maybe the better solution in build system is to avoid nice-ing at all, and require users who need it to invoke "nice -n ... make ..."? Or maybe at least have the knob that disables automatic niceness?

Thanks, -Aleksey



More information about the build-dev mailing list