Skip navigation.
Home

Tomcat Performance Higher on Linux

As i told you by the end of the article [How to Install Tomcat on linux| http://www.egjug.org/tomcat_linux] that i found that the performance is much better and you can feel it from the first time, i found in [TheServerSide|http://www.theserverside.com] news the [comparison between Tomcat on Linux and windows| http://www.theserverside.com/news/thread.tss?thread_id=38377]. The comparison is split into two parts: * [Performance and Distinct Error Handling under Memory Load| http://webperformance.com/library/reports/windows_vs_linux_part1/index.html] * [Performance and Distinct Error Handling under Computational Load| http://webperformance.com/library/reports/windows_vs_linux_part2/index.html] Conclusion from the first article Here, we've noted the behavioral and performance differences for each server up to, during, and after a bottleneck. Different bottlenecks will of course have key indicators as to their cause. However, from the end-user's point of view, many bottlenecks will end up being dealt with in the same way. Some preliminary testing was performed afterwards by tweaking the VM memory settings in order to remedy our performance slump, and verify that it was in fact a memory limit. However, we do see indicators that the VM must have been forced to block for otherwise background optimizations, as the performance for both servers did eventually recover. In the next part of this report, we will find that tuning the JVM memory parameters resolve the performance slump that we saw in this round of testing, confirming that the problem hit by this test was a memory limitation. Despite the specific cause of our slump, it is not inconceivable that other performance pitfalls will end up being dealt with in the same fashion. Prior to reaching capacity, our Linux server showed it's ability to scale subtly better, notably with a higher completed response rate. This trend arises again after the servers have been able to recover from their performance slump. When our servlet found itself hitting memory limits of the app server, the platforms had an opportunity to reveal different error handling techniques. Linux maintained it's lead over it's Windows counterpart, except when it was forced to deal with the memory shortage. Users were potentially forced to wait minutes or more for their page to complete loading. Potential waits turned into repeated waits for users navigating through a long sequence of pages. Windows users saw a different story. Under the same memory shortage, the OS was forced to turn away traffic, but delivered roughly the same number of successful hits as our Linux server.