"Nice" or not to "nice" large jobs
Blair P. Houghton
bhoughto at hopi.intel.com
Sun May 19 19:44:02 AEST 1991
In article <4281 at inews.intel.com> bhoughto at hopi.intel.com (Blair P. Houghton) writes:
>In article <1991May16.140622.29266 at alchemy.chem.utoronto.ca> system at alchemy.chem.utoronto.ca (System Admin (Mike Peterson)) writes:
>>Our policy for nice/renice is:
>>
>>0 - "short" processes/jobs (compilations, or up to 5 minutes cpu time).
>>1 - "medium" processes/jobs (up to 1 hour cpu time).
>>2 - "long" processes/jobs (all other jobs).
>
>That's all but affectless.
I flame myself.
Computer usage is a chaotic system, and as such deserves
a more empirical method.
Check out these stats, collected over 10 minutes of
real-time run of 3 simultaneous, identical processes (3
fork/exec's of the same executable, which was essentially a
tight loop testing and incrementing a couple of integers)
on a relatively quiescent machine (a VAX420 (a DECstation3100)
running Ultrix with a load of about 0.08):
nice cpu user-mode time (out of 600 sec)
0 212.39 sec 35.4 %
1 199.07 33.2
2 185.34 30.9
total 596.80 99.47 %
thus, each step in nice value gives about a 2.3
percentage-point split in cpu-time share.
When the processes are perturbed by another process that
simulates a user interface (extraneous load about 1.0 with
occasional i/o, intermittent computation, and light shell
activity):
nice cpu user-mode time (out of 600 sec)
0 204.51 sec 34.1 %
1 190.29 31.7
2 179.59 29.9
total 574.39 sec 95.7 %
this shows little change in the splits.
If we multiply the nice values by 4:
nice cpu user-mode time (out of 600 sec)
0 285.40 sec 47.6 %
4 181.63 30.3
8 129.87 21.7
total 596.90 sec 99.4 %
this simple increase causes the splits to increase
to approximately 17 percentage-points each.
Using the larger-grained and offset nice values I suggested
for the cpu-intensive processes:
no interference:
nice cpu user-mode time (out of 600 sec)
4 306.26 sec 51.0 %
8 169.23 28.2
12 121.31 20.2
total 596.80 sec 99.5 %
random, light i/o in another process:
nice cpu user-mode time (out of 600 sec)
4 307.65 sec 51.3 %
8 158.50 26.4
12 107.60 17.9
total 573.75 sec 95.6 %
The effect on the lower-priority processes is much
more noticeable, to the point that using nice becomes
actual management of the time the processes use.
As a finale, I present 10 processes fighting over an
otherwise quiet (load < 0.1) cpu:
nice cpu user-mode time (out of 600 sec)
0 354.09 sec 59.0 %
2 120.83 20.1
4 56.52 9.42
6 38.15 6.36
8 21.03 3.51
10 5.07 0.845
12 1.75 0.292
14 0.38 0.063
16 0.32 0.053
18 0.20 0.033
total 598.34 sec 99.72 %
when graphed, this is a fairly smooth curve with half
of the processes taking over 100 times their optimal
run-time to complete...
--Blair
"Empires are for empiricists."
More information about the Comp.unix.internals
mailing list