我意识到这个问题非常笼统,我正在寻找关于如何协调 linux (RedHat 5) 与 Windows (2008 Server) 上的性能差异的非常一般的输入。我有一个 java 应用程序,它是多个服务的集合,这些服务正在处理来自线路的 netflow 数据包,在完全相同的硬件上,它似乎在 Linux 和 Windows 上以大约一半的容量执行。该应用程序涉及从套接字中提取数据包,并对它们执行一些非常简单的处理,并写出一个压缩的输出文件以供不同的 C++ 应用程序在下游处理。
程序中相关的区域: 从套接字中提取数据包 数据库访问 (mysql 5.1.45) 大量文件 i/o
就优化而言,我几乎没有 linux 经验,如果有人能指出一些在尝试针对不同于 windows 的 linux 进行优化时需要注意的事情,那就太好了。
另外,我不完全确定我还能提供哪些其他信息。就像,我知道我没有提供很多有用的信息,我很感激能指出我正确方向的问题。
是否有任何实用程序提供跨 Linux 和 Windows 的 Java 性能基准测试?
如果问题没有意义,或者我提供的信息太少,甚至无法提出有用的问题,请随意击落我。
谢谢!
编辑:所有 jvm 设置都是相同的(在两种情况下,我们对所涉及的服务都使用完全相同的包装器配置文件)
编辑:我想暂时提出这个问题。除了运行一个基本的分析器和比较结果之外,我已经无法花更多的时间来探索这个了。linux 和 windows 上的结果看起来几乎相同,除了从 NIC 中提取数据包的延迟要大得多。我仍然不明白为什么会这样,或者这是与其他网络状况有关的异常情况。当我有时间再次查看此内容时,我会发布更多内容。
感谢大家的回答!