为什么Tomcat/Java在Linux上比在Windows上表现更好?

4

我刚读到这篇研究报告, 在报告中提到Linux下的Tomcat性能优于Windows下。

根据您的经验,这个结论通常正确吗?有没有深层次的原因可以解释这种性能差异?


1
这是一篇较新的文章:http://mediakey.dk/~cc/tomcat-performance-linux-faster-than-windows/ - BalusC
2
我同意评论中的观点(基准测试已过时,使用旧版JVM,某些细节不清楚),但是,在我所做的所有基准测试中,我从未见过在Windows上运行的应用服务器比在GNU/Linux上表现更好(相同的硬件、版本和参数,分别由Windows和Linux专家调整)。你可以把这看作是一个免费的声明,但这是我的经验(老实说,我不知道有多少客户在生产环境中在Windows上运行应用服务器)。 - Pascal Thivent
@ripper234:是的,这通常是真的。您是否也对正常运行时间感兴趣?那么强制重新启动所需的关键安全补丁呢?(请记住,在某些环境中,重新启动被视为执行不可靠的方式)。Windows是一只猪,一个不安全、臃肿、有缺陷的操作系统。糟糕的操作系统设计、糟糕的调度、不良的资源分配等等。请记住,在Linux下,“kill -9”*保证释放程序正在使用的所有内存。在Windows下不存在这样的东西。泄漏。如此之多的泄漏。Windows真的只是个平庸的POS:你有没有注意到SO的可怜正常运行时间? - SyntaxT3rr0r
3个回答

1

我认为这样的基准测试并不能提供太多有用信息,尤其是这个已经有4年了。

顺便说一下,这些差异通常与操作系统如何管理内存、缓存和线程等方面的某些选择有关。


该死,我刚在Google Reader上看到这个,没注意日期。 - ripper234
1
还不清楚他们使用的是哪个JVM,也不确定他们是否使用了“-server”选项。 - BalusC
@Jack:-1,在这里查看:http://mediakey.dk/~cc/tomcat-performance-linux-faster-than-windows/ 如果你真的认为Windows服务器的性能和Linux一样好,那就问问自己所有基于Windows的Oracle数据库在哪里,以及所有Windows“前500”超级计算机在哪里。Linux在这方面确实游刃有余 ;) - SyntaxT3rr0r
1
我并没有说Windows的性能和Linux一样好,相反,我认为Linux更有可能表现更好 :) 我只是想指出这种基准测试必须小心使用作为参考,我的回答是操作系统无关的。 - Jack

0

我对任何基准测试都持保留态度。任何比较都可能被操纵。

我发现一个关键是要尝试发现做比较的人可能存在的任何偏见。几年前,有一次臭名昭著的Java EE Pet Store与.NET的比较。进行研究的团队曾受到微软的支付。他们没有尽力优化Java EE解决方案,使其处于不利地位。结果因此被驳斥。

WebPerformance.com是否有Linux偏见?

如果没有,那么有很多因素会影响这样的结果。我会仔细比较所有这些因素,并尝试看看是否有任何重要的东西被遗漏了。


确实不清楚使用了什么设置。JVM 是否使用了“-server”选项?NIO 连接器是否启用?这两个问题在 Windows 上都非常重要。 - BalusC

-1

几个观点(大多是猜测):

  • Tomcat由FOSS开发,基于FOSS软件,因此在FOSS软件上表现更好是合理的。
  • Linux是更好的操作系统 ;-)

总的来说,这取决于精细调整的经验... 如果你很了解Windows,你会更好地为Windows进行调整,如果你更了解Linux,那么...


1
这些观点没有意义,或者至少不是一个解释。 - matt b
实际上第一个是相当有效的。例如,MySQL和PostgreSQL在Linux/Unix上被认为更有效,因为它们紧密地针对POSIX操作系统,并从中进行了优化。 - Artyom

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接