5

下午好。我的 CentOS 6(64 位)服务器上的 Java VM 遇到了一个非常令人费解的问题。它是具有四核 CPU(具有超线程)、16GB RAM 和 2TB 硬盘空间(在软件 RAID1 上)的服务器。我想我会在这里问,因为根据常见问题解答,关于开发人员使用的“常用工具”的问题是适当的。希望有人可以对这个问题有所了解。

我每天 24 小时在服务器上运行一个 Java 软件。今天早些时候(在服务器区域设置的午夜后几个小时检测到,这是值得注意的,因为这是本月的第一天)我收到连接到该软件的用户报告,因为客户端突然变得无法使用。JVM 从未中断或重新启动。上一次重启是在几天前,从那以后一直正常运行(使用大约 5% 或更少的 CPU,这是正常的)。

这一次,当我检查该进程时,它实际上正在吞噬所有可以与服务器上运行的其他应用程序搏斗的 CPU 时间(如 top 所报告的那样),或者超过 100%(如 ps 所报告的那样)。我尝试停止并重新启动应用程序,但一旦它运行,CPU 使用率会立即再次飙升至 100% 以上。内存使用正常。我尝试了不同的 JVM 标志,但无济于事。我尝试下载最新版本的软件并进行全新安装,但这也无济于事。最后,我尝试下载另一个完全不同的 Java 软件,但是当我在服务器上运行它时,它遇到了同样的问题。

当我下载该软件并在我的计算机上运行它时,CPU 使用率是正常的。因此,我假设服务器出错了,但我无法想象它可能是什么。服务器的 JVM 是最新的,来自标准的存储库包(没有任何定制)。

从 java -版本:

java version "1.6.0_24"
OpenJDK Runtime Environment (IcedTea6 1.11.3) (rhel-1.48.1.11.3.el6_2-x86_64)
OpenJDK 64-Bit Server VM (build 20.0-b12, mixed mode)

来自 uname -a:

2.6.32-131.21.1.el6.x86_64 #1 SMP Tue Nov 22 19:48:09 GMT 2011 x86_64 x86_64 x86_64 GNU/Linux

来自 centos-release/redhat-release/system-release:

CentOS release 6.2 (Final)

免费报告大约 14.5gb 可用 RAM。df 报告 /home 分区(有问题的软件及其所有文件所在的位置)中有大约 1.4tb 的可用磁盘空间。

有任何想法吗?请询问您是否需要更多数据,并随时建议我尝试/检查的程序。在查找问题时,我发现有几个人在 JVM 窃取 CentOS 上的所有 CPU 时遇到问题,但似乎没有一个与我的问题相符。

4

3 回答 3

9

您可能想尝试以下命令

# service ntpd stop; date -s "`date`";service ntpd start;

我有内核 2.6.32-220.el6.x86_64 和 jdk1.7.0_04 的 CentOS6,通过上述命令观察并解决了高 CPU。无需重新启动操作系统。

这似乎是 linux 内核的错误,如https://access.redhat.com/knowledge/solutions/154793中所述。上述修复在http://blog.wpkg.org/2012/07/01/java-leap-second-bug-30-june-1-july-2012-fix/

于 2012-07-02T04:28:04.757 回答
1

我还可以确认 RHEL 6、Tomcat 7 和 Sun/Oracle Java 7 & Java 6 中存在的问题。

ntpd stop; date; ntpd start命令起作用了。

uname:
2.6.32-220.2.1.el6.x86_64 #1 SMP Fri Dec 23 02:21:33 CST 2011 x86_64 x86_64 x86_64 GNU/Linux
于 2012-11-14T23:22:53.937 回答
0

我可以确认 Fedora 14、Tomcat 6 和 OpenJDK 1.6 上存在这个问题。Mysticial 的解决方案也对我有用。

unname -ar:

2.6.35.14-103.fc14.x86_64 #1 SMP Thu Oct 27 15:41:25 UTC 2011 x86_64 x86_64 x86_64 GNU/Linux

java-版本:

java version "1.6.0_20"
OpenJDK Runtime Environment (IcedTea6 1.9.10) (fedora-55.1.9.10.fc14-x86_64)
OpenJDK 64-Bit Server VM (build 19.0-b09, mixed mode)
于 2012-07-04T17:46:23.073 回答