Yesterday, one of my colleagues forwarded me the following note (from an
as-of-yet unidentified third party):

-----------------------
"I've listed out the main performance problems with 2.5. The point here is
that,
given what you're doing with DB2 Connect, Linux would be a ridiculous
choice prior to a 2.6 kernel."

"Yes, we benchmarked Oracle on Linux and it was faster than Windows...
But that's not really saying anything, now is it? :)"
-----------------------

The alleged performance flaws that he identified were:

---------------------
Pre 2.6 Linux Limitations---

*       High amount of "Big Kernel Locks" still being used (versus small
semaphore locks) for TTY traffic, memory access, etc. (will be reduced in
2.6)
*       Global Locks for (I/O requests, IRQs, etc.)
*       No processor affinity (threads are stuck on same CPUs always)
*       Kernel is not pre-emptive
*       Buffer cache and page cache managed separately (slower)
*       I/O Scheduler is inefficient
*       Single I/O global request lock for all I/O types (raw vs sync vs...)
*       Old Scheduler still being used:
o       Global run-queue holds all runnable processes (slow when queue is
long)
o       Reschedule scans requires full run-queue scan to find next process
to run (limits SMP scalability)
o       Time-slice recalculation after all slices have been consumed (slow
process when queue is long)
o       No facility for more efficient wakeup, interrupt, schedule timers
o       No load balancing between CPUs
o       Unnecessary context switches for procs / threads sleeping
----------------------

Can some of the internals gurus on this list comment on these claims and
whether they are relevant to Linux under VM? I have my own speculations, but
I wanted to see what the facts were.


Thanks,

Julian Gustasson
Lead System SW Support Engineer
Qwest Information Technologies

Reply via email to