


Kernel Comparison: Web Serving On 2.4 And 2.6 43
An anonymous reader writes "Many improvements have been made in the Linux 2.6 kernel to favor enterprise applications. This article presents results from the IBM Linux Technology Center's Web serving testing efforts, comparing the Linux 2.4 and 2.6 kernels from various aspects. The highlights here are the key enhancements in the 2.6 kernel, the test methodologies, and the results of the tests themselves. Bottom line: the 2.6 kernel is much faster than 2.4 for serving Web pages, with no loss in reliability."
Stop pushing. Its all linux (Score:2)
Re:Stop pushing. Its all linux (Score:5, Interesting)
You were having problems with your current webservers? They can't serve pages fast enough? You'll have to spend $50,000 to upgrade so you can handle it? Put 2.6 on! You might be able to hold off that upgrade for 6-12 months, by which time that $50,000 will buy you much more computer than it will today (not to mention you could invest that money and have more by then).
What do you call a FREE PERFORMANCE UPGRADE? You call it good!
Besides, it doesn't matter if it needs a "little while to iron out." If you just blindly deploy new kernels on production servers with no testing, you deserve the flack that will come you way if you get bit by a bug.
Re:Stop pushing. Its all linux (Score:5, Insightful)
Thanks SCO! (Score:5, Funny)
Re:The question is.. (Score:3, Funny)
None.
Why upgrade? (Score:4, Funny)
Aside from a small performance boost, is there really any reason to update perfectly stable systems? My shop has been using a few boxen running RedHat 5.2 for almost seven years now. If everything is stable, why upgrade?
Re:Why upgrade? (Score:5, Informative)
The small performance boost, according to this paper, is large. Huge, much the same as the scalability boosts that came in as a result of the mindcraft benchmarks. However, they are for the most part improvements in SMP. There are also some "responsiveness" improvements in the scheduler.
Should you move to 2.6? Probably not. As far as I can tell the gains are on big iron, really really small iron, and the desktop. I'm sure as hell not moving off 2.4 any time soon.
Dave
Re:Why upgrade? (Score:1)
"Little Tin" perhaps?
Re:Why upgrade? (Score:4, Funny)
Re:Why upgrade? (Score:2, Informative)
Small...right... i'll refer you to the text of the article:
Conclusion
We've shown that, using a typical test scenario -- Apache/WPT on an 8-way SMP IBM xSeries system -- the Apache server has better scalability and performance on the 2.6 kernel compared to the 2.4 kernel. On the same system under the same workload, the Apache server with 2.6.0-test5 kernel more effectively used system resources and served 5 times more Web pages than the 2.4.18 kernel did. This real
Enterprise applications? (Score:2, Insightful)
Enterprise applications are many things to many people, but rarely are they web servers.
Enterprise servers are generally run complex applications running many complex operations.
While I'm sure IBM's web server is very good, I don't think that it would be typical of an "Enterprise application".
My point is, while I'm sure this is a fantastic article examining performa
A marvelous understatement (Score:5, Funny)
"O(1) scales well..."
No, really?
Consumes more RAM... (Score:3, Informative)
Of course, this is just a benchmark
Re:Consumes more RAM... (Score:5, Interesting)
Headline: Linux Makes Bad Code Look Better (Score:5, Informative)
The new linux kernel is great, but the reason the this particlular kernel results is better performance ("5 times better") is because the application framework it is testing is horrible.
All of the "enterprise" applications in this test have several performance cripling features in common: socket per thread connections, fundemental reliance on threads, and massive memory foot print. Apache has one thread/process (the diff is a stack) per connections. Java requires a sizable multiple of memory usage as most other application languages (C/C++ obviously, but also Perl, Python, and PHP). J2EE is an inherently thread driven programming framwork.
So yes, Linux 2.6 ameliorates the downsides of unnecessary use of threading. It makes thread creation and context switching even faster on the Linux platform.
And Yes, Linux 2.6 memory management is fundementally better. Reverse Page Table Entry mappings make finding victim pages better; and it is designed to avoid victimizing active pages better.
But could you all imagine if people were designing fundementally better application framworks? Event driven application architectures like TwistedPython [twistedmatrix.com] and POE [perl.org], or Event-thread hybrid systems like SEDA [harvard.edu].
The performance stats given in that article are shit, complete utter shit. I know. In the proprietary world I work in, I code faster programs on the same Linux platform on a daily basis; orders of magnitude faster.
All the accomplishments of Linux 2.6 can be used for true performance programming. I plead with you all, stop using Threads until you know what they are good for. Stop using the stack to maintain your program state. Throw off the shackles and learn [kegel.com] to program [pl.atyp.us] network servers.
Re:Headline: Linux Makes Bad Code Look Better (Score:3, Informative)
what has your two memory management lines got to do with anything?
When the kernel needs to get free memory pages, it looks on some sort of free page list or it has to find a victim page. There are lots of strategies to find victim pages. The reverse page table mappings allow the kernel to scan only pages in memory for victims and not have scan the virtual mappings for pages in memory AND satisfy some "victimizable" criteria.
Secondly, reverse page mappings alow you to know more about the page, like it i
Re:Headline: Linux Makes Bad Code Look Better (Score:1)
Re:Headline: Linux Makes Bad Code Look Better (Score:1, Troll)
And I'm _really_ not sure why you're showing us a friggin
Re:Headline: Linux Makes Bad Code Look Better (Score:3, Insightful)
Thats not informative, thats just dumb.
I think I'll disagree with you on that.
How do you think things like I/O completion are implemented?
I've heard that the have a thread waiting for each completion port, sorta like the aio_* implmentation on Irix. But, you might be thinking I am some Microsoft stuge, just so you know I don't do windows; sometimes FreeBSD (cuz it has some cool stuff), but nearly exclusively Linux for the last 10 years.
Crappy threading performance on Linux (and in unix in general) ha
Re:Headline: Linux Makes Bad Code Look Better (Score:2)
The main reason why people (at least on Linux & other unixy platforms) have avoided threading in really high end/scalable servers is because threads don't scale well. Well, now we've got a scheduler and thread libraries that scale very nearly 1:1. You're talking about designs that work around a problem that no longer exists (well, at least isn't as extreme - I haven't done the sort of t
Re:Headline: Linux Makes Bad Code Look Better (Score:3, Informative)
Re:Headline: Linux Makes Bad Code Look Better (Score:2)
Thanks for your reply. Here is my best response.
Try to remember I was replying to a article about how fast a web-based enterprise application is affected by the new linux kernel. That means many network connections to both clients, middleware, and even databases, with high transaction rates. I am not talking about an FTP server downloading big static files to a few users.
Unless you are writing an eBay or Amazon.com or Yahoo.com, a threaded/blocking-IO approach will work fine.
/me smiles
To be completel
TwistedPython has a severe limitation (Score:3, Informative)
Diregard the fact that TwistedPython is still in its infancy and thus immature compared to its rivals.
The fundamental problem with it is that it will not scale well to multiple processors because all of the python threads must interact and share the same memory. It's not like Apache which has one master process that handles incoming c
Event driven application frameworks are kludges (Score:3, Insightful)
Re:Headline: Linux Makes Bad Code Look Better (Score:2)
"Throw off the shackles and learn to program [pl.atyp.us] network servers."
"Dividing code into stages is a complicated matter of program design, so there's not much I can offer there"
The inevitable disclaimer buried in the majority of all literature attempting to discuss concurrency. Try this [ic.ac.uk] for a practical remedy.
= 9J =
Re:Headline: Linux Makes Bad Code Look Better (Score:1)
hyperthreading aware scheduler is not in yet (Score:1)
Ingo Molnar:
On Thu, 18 Dec 2003, Ingo Molnar wrote:
> Jeff Garzik wrote:
>
>>Are you sure? I could have sworn Ingo made the scheduler magically
>>HT-friendly...
>
> nope, it's not in 2.6 yet. This area is still under development,
> with various approaches being considered.
>
> Ingo
Re:hyperthreading aware scheduler is not in yet (Score:1)
MPM Module(s) Used with Apache? (Score:2, Interesting)