【发布时间】:2015-11-05 22:57:09
【问题描述】:
手头的问题:
我有一个 java 应用程序,它在 DEV 和 QA 服务器上运行的时间是在我的本地计算机上运行的时间的两倍。在 Dev 和 QA 上运行工作时,我的时间大约是 1:45 – 2:30 (hh:MM),而我的本地时间大约是 0:45 – 1:10。 我正在尝试确定可能导致服务器上的 Java 应用程序性能下降的原因。
到目前为止,我所调查的都没有提供答案:
- 使用相同的 maxheap 大小进行测试
- 观察 CPU 压力。在运行批处理应用程序时,开发人员大约有 75% 的时间处于空闲状态,因此我认为这不是问题。
- 在 Dev 上观察 ram。 Dev 有足够的内存来为 JVM 提供指定的 maxHeap (128mb)。如果我理解正确,机器的可用内存并不重要,只要机器可以提供正确的 MaxHeap 大小?
- 确保 java 的版本不会导致问题。
- 设置日志级别相同:“INFO”
- 处理器:服务器有 2.67GHz 处理器,我的本地只有 2.19GHz
附加信息。
- 服务器操作系统:Linux
- 本地计算机操作系统:Windows
- 单线程 Java 应用程序。
- 应用程序正在读取和写入文本文件并且还有调用 到数据库(休眠 c3p0)。这些是我最/唯一昂贵的操作
我已经搜索了数十个网站以确定根本原因,但我无法确定导致问题的原因,任何帮助将不胜感激。
【问题讨论】:
-
“75% 空闲”是指一个核心以 100% 运行而另外三个空闲,还是真的意味着测试负载只消耗了 25% 的可用 CPU 资源?跨度>
-
如果测试负载确实只使用了它可能使用的最大 CPU 的一小部分,那么它可能会因 I/O 而变慢。
-
@JohnBollinger 后者“负载仅消耗了可用 CPU 资源的 25%?”这是一个共享服务器,所以我的应用程序加上服务器上的其他人加起来只使用了 25%。不确定这是否重要,但我的应用程序正在读取和写入文本文件,并且还调用了数据库。这些是我最昂贵的手术
-
不同型号的 CPU 即使运行在相同的 GHz 下也有不同的性能。我建议你看看实际的 CPU 型号。
标签: java linux windows performance