Messages in this thread | | | Date | Thu, 6 May 1999 04:49:20 -0700 | From | <> | Subject | Re: Overscheduling DOES happen with high web server load. |
| |
Date: Thu, 6 May 1999 10:42:18 +1000 From: Richard Gooch <rgooch@atnf.csiro.au>
Indeed. As a separate question, we may wonder why so many processes/threads are being used, and whether that number could/should be reduced. Perhaps the server is doing something silly. But that's an aside. Instead, I'd like to explore ways of reducing the (already low) scheduler overhead.
No, it is more beneficial to find out why so many tasks are waking up so much in the first place, _THIS_ is the bug.
This smells of galloping herd phenomenon to me. And my nose says it's accept() in this case, and my nose further states that implementing wake-one semantics in accept() might even make this part of the profiling go away and increase our TCP server performance dramatically. Several people have suggested this to me in private discussions, and I was skeptical at first, but now I'm starting to believe it.
This has nothing to do with how many threads are being used, it has to do with threads getting woken up only to find they have no work to do, which is the only way the run queues can grow large enough for these sorts of user processes.
Later, David S. Miller davem@redhat.com
- 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/
| |