下午好。在我的CentOS 6(64位)服务器上,Java存在一个非常令人困惑的问题。它是一个具有四核CPU (超线程)、16 on内存和2TB硬盘空间(在软件RAID1上)的服务器。我想我在这里问是因为,根据FAQ,关于开发人员使用的“通用工具”的问题是合适的。希望有人能对这个问题有所了解。
我在服务器上运行了一段Java软件,每天24小时。今天早些时候(在服务器的区域设置上检测到几个小时后,这是值得注意的,因为这是一个月中的第一天),我收到了用户作为客户端连接到这个软件的报告,它突然变得不可用了。JVM从未中断或重新启动。最近一次重新启动是在几天前,从那时起,它一直正常运行(使用大约5%或更少的CPU,这是正常的)。
这一次,当我检查这个进程时,它实际上占用了它可以从服务器上运行的其他应用程序(如顶部所报告的那样)占用的所有CPU时间,或者超过100% (由ps报告)。我试着停止并重新启动应用程序,但是一旦它运行,CPU使用率就会立即飙升到100%以上。内存使用是正常的。我尝试了不同的JVM标志,但没有结果。我试着下载该软件的最新版本并重新安装,但这也无济于事。最后,我尝试下载另一个完全不同的Java软件,但是当我在服务器上运行它时,它也遇到了同样的问题。
当我下载软件并在我的电脑上运行它时,CPU的使用是正常的。因此,我假设服务器错误,但我无法想象它可能是什么。服务器的JVM是最新的,来自标准的存储库包(没有任何定制)。
来自java -version:
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-发布/发布/系统发布:
CentOS release 6.2 (Final)免费报告约14.5gb空闲RAM。df报告了/home分区中1.4tb的空闲磁盘空间(在该分区中,所讨论的软件及其所有文件都位于其中)。
有什么想法吗?请询问您是否需要更多的数据,并随时建议程序,让我试用/检查。在查找问题时,我发现有几个人在CentOS上窃取所有CPU时遇到了问题,但似乎没有一个能与我的问题相匹配。
发布于 2012-07-02 04:28:04
您可能想尝试以下命令
# service ntpd stop; date -s "`date`";service ntpd start;我有内核2.6.32-220.el6.x86_64的CentOS6和jdk1.7.0_04,通过上面的命令观察和解析了高CPU。不需要重新启动操作系统。
正如https://access.redhat.com/knowledge/solutions/154793中所描述的,这似乎是linux内核中的一个bug。上述修复方法在http://blog.wpkg.org/2012/07/01/java-leap-second-bug-30-june-1-july-2012-fix/中进行了描述。
发布于 2012-11-14 23:22:53
我还可以确认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/Linuxhttps://stackoverflow.com/questions/11283271
复制相似问题