ULE and current.
Andy Farkas
andyf at speednet.com.au
Wed Dec 10 23:39:42 PST 2003
Jeff Roberson wrote:
> Andy Farkas wrote:
>
> > The scheduling of nice processes seems to be broken:
>
> This is actually a problem in the load balancer. It's not taking nice
> into consideration when attempting to balance the load.
>
> > team2# nice -7 sh -c "while :; do echo -n;done" &
> > team2# nice -7 sh -c "while :; do echo -n;done" &
> > team2# sleep 120; top -S
> >
> > PID USERNAME PRI NICE SIZE RES STATE C TIME WCPU CPU COMMAND
> > 675 root 133 -7 1576K 952K CPU1 1 1:52 75.78% 75.78% sh
> > 676 root 133 -7 1576K 952K RUN 1 1:39 73.44% 73.44% sh
> > 12 root -16 0 0K 12K RUN 0 18:46 55.47% 55.47% idle: cpu0
> > 11 root -16 0 0K 12K RUN 1 7:00 0.00% 0.00% idle: cpu1
Just to make it clear, I was expecting the above to be something like:
sh on CPU0 using 100% cpu,
sh on CPU1 using 100% cpu,
idle: cpu0 to be 0%, and
idle: cpu1 to be 0%.
> >
> > Adding a third nice process eliminates the idle time, but cpu% is still bad:
> >
> > team2# nice -7 sh -c "while :; do echo -n;done" &
> > team2# sleep 120; top -S
> >
> > PID USERNAME PRI NICE SIZE RES STATE C TIME WCPU CPU COMMAND
> > 705 root 133 -7 1576K 952K CPU0 0 1:53 100.78% 100.78% sh
> > 675 root 133 -7 1576K 952K RUN 1 12:12 51.56% 51.56% sh
> > 676 root 133 -7 1576K 952K RUN 1 11:30 49.22% 49.22% sh
> > 729 root 76 0 2148K 1184K CPU1 1 0:00 0.78% 0.78% top
> > 12 root -16 0 0K 12K RUN 0 24:00 0.00% 0.00% idle: cpu0
> > 11 root -16 0 0K 12K RUN 1 7:00 0.00% 0.00% idle: cpu1
And at this point I would expect something like:
sh #0 using 66.3%,
sh #1 using 66.3%,
sh #2 using 66.3%,
idle: cpu0 to be 0%,
idle: cpu1 to be 0%.
> I agree that 100.78% is wrong. Also, the long term balancer should be
> kicking one sh process off of the doubly loaded cpu every so often. I'll
> look into this, thanks.
Could it be that the scheduler/balancer is confused by different idle
processes? Why does 'systat -p' show 3 idle procs?? :
/0 /10 /20 /30 /40 /50 /60 /70 /80 /90 /100
root idle: cpu0 XXXXXXXXXXXXXXXX
root idle: cpu1 XXXXXXXXXXXXXXXX
<idle> XXXXXXXXXXXXXXXX
So, where *I* get confused is that top(1) thinks that the system can be up
to 200% idle, whereas systat(1) thinks there are 3 threads each consuming
a third of 100% idleness... who is right?
>
> Cheers,
> Jeff
>
--
:{ andyf at speednet.com.au
Andy Farkas
System Administrator
Speednet Communications
http://www.speednet.com.au/
More information about the freebsd-current
mailing list