Re: stress testing and loadavg

Adam McKee (
Tue, 5 Aug 1997 11:42:20 -0600 (CST)

Hi all.

On Tue, 5 Aug 1997, Ingo Molnar wrote:

> > Well i just tested 2.0.30 with the QNX-style scheduler (1.05) and
> > found it to handle 50 looping bash-scripts, 1 gnuchess and a simple
> > X-Session (Server, xterm, fvwm2) and still reacting instantaneous to
> > input on another virtual terminal. The load was >56. Not bad for a
> > Pentium-100... I am now giving it a try on my old 4 MB 386 and my
> > 233MHz Multia, to see how much load they can handle... This time i will
> > use the program you posted.
> >
> > The adaptive scheduling of the new scheduler is really a neat feature.
> i dont think there is any justification to 'punish' a process, just
> because it does no system calls ... it might be a database server.

It only matters if the system call causes the process to block. If a
process uses all of its timeslice without blocking it may be moved down a
run-queue. As soon as a process blocks its run-queue will be set equal to
its minimum run-queue. I hope people would realize that putting in system
calls just to get back to the minimum run-queue is a brain-damaged thing
to do. Of course, I'm sure compiler writers realize that optimizing for
specific benchmarks is a brain-damaged thing to do...

> if any heuristics are used, then it should be user-definable, just like
> now. I dont think we want to end up with complaints like this: 'hey our
> number-cruncher is getting so slow when the web server is running'. Or
> solutions will show up that do a fake system call every now and then, to
> 'pump up' the effective priority ...
> Every thread has it's right to it's full quantum, and the OS has to
> provide this. So i think adaptive scheduling is nice, but should not be at
> all the default scheduling policy.

As I point out in the README for the scheduler, you do need to rethink how
to re-nice tasks. If a machine's primary role is web-serving, put the
web-server on a lower-numbered run-queue... If you don't want your
number-cruncher getting demoted, you can (well, root can...) use
sys_setscheduler to get it to use the SCHED_RR policy instead of
SCHED_ADAPTIVE. The adaptive scheduling is a nice idea which usually
works well, but people should not get the idea that it takes away the need
to manually re-nice tasks. In fact, there's even *more* need/benefit to
manual re-nicing with this scheduler.

-- Adam