Re: Linux scheduler, overscheduling performance, threads

From: Ingo Molnar (mingo@chiara.csoma.elte.hu)
Date: Mon Jan 24 2000 - 15:02:27 EST


On Thu, 20 Jan 2000, Brian Hurt wrote:

> Following this thread off and on since it's inception, and being a Java
> programmer myself, can I offer some observations?
>
> Thousands of threads in a program is not unreasonable. If you may want to
> take full advantage of a 128 CPU machine, for example, you need _at_
> _least_ 128 threads. If your threads spend most of their time blocking,
> you need even more threads, you need to overschedule, to make sure you
> generally have enough threads not blocking to make sure CPUs aren't going
> to waste. Unfortunately, due to vagaries of the system, you will have
> points when most of the threads become runnable at once.

i believe you are confusing '2000 threads created and happily waiting
blocked to do something' and the '2000 threads running' case. I
specifically included a quick benchmark showing 20 thousand threads being
around on my system and not impacting Linux scheduler performance the
slightest. What i say is that more than nr_cpus*2 _running_ (ie. currently
waiting for the CPU, not some other resource) threads are bad.

-- mingo

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Mon Jan 31 2000 - 21:00:13 EST