Messages in this thread | | | Date | Sat, 8 May 1999 07:31:00 +1000 | From | Richard Gooch <> | Subject | Re: Overscheduling DOES happen with high web server load. |
| |
Phillip Ezolt writes: > On Fri, 7 May 1999, Andrea Arcangeli wrote: > > > On Thu, 6 May 1999, Phillip Ezolt wrote: > > > > >Although this would probably speed up the code, the underlying problem > > >is still there. (The linear search for the next process) The patch basically > > > > I really don't think the linear search is a big issue. You had at _max_ 90 > > task running at the same time. I think the big issue is to avoid the not > > needed schedule(). If you avoid them you drop from 40000 schedule/sec to > > 3000 schedule/sec... > > Ok, you are right. The real problem is we are calculating goodness > O(A*B). > > A= Number of processes on the runqueue > B= Number of times schedule is called
Don't underestimate the cost of searching the run queue. Put 10 processes on the run queue and you more than double the cost of schedule() to another process. For 90+ tasks on the run queue, the cost is dominated by the linear search. The actual context switch is nothing by comparison. My results are at: http://www.atnf.csiro.au/~rgooch/benchmarks/linux-scheduler.html
Reducing the cost of goodness() will help a bit, but even the search through the tasks on the run queue is quite expensive.
Regards,
Richard....
- 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/
| |