当前位置: 首页 > 知识库问答 >
问题:

在CentOS 6中,JVM总是超过100%的CPU使用率

颛孙智勇
2023-03-14

我在服务器上运行一个Java软件,24小时/天。今天早些时候(在服务器区域设置的午夜后几个小时检测到,这是值得注意的,因为它是本月的第一天),我收到了作为客户端连接到该软件的用户报告,称该软件突然变得不可用。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 6.2 (Final)

免费报告约14.5GB的自由内存。df报告/home分区中大约有1.4TB的可用磁盘空间(有问题的软件及其所有文件都位于该分区)。

有什么想法吗?请询问您是否需要更多的数据,并随时建议程序让我试用/检查。在查找问题时,我发现了几个使用JVM窃取CentOS上所有CPU的人遇到麻烦的实例,但似乎没有一个与我的问题相匹配。

共有1个答案

公西良骏
2023-03-14

您可能想尝试以下命令

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

我有一个内核为2.6.32-220.el6.x86_64和JDK1.7.0_04的CentOS6。不需要重新启动操作系统。

 类似资料:
  • Java(TM)SE运行时环境(构建1.7.0_40-B43) Java HotSpot(TM)64位服务器VM(构建24.0-b56,混合模式 我们有相同技术的其他应用程序,但没有问题。 -xms1g-xmx1g-xx:+heapdumponoutofmemoryerror-xx:+useparngc-xx:+useconcmarksweepgc-xx:+printgcdetails-xx:+p

  • 我对运行的节点进程所看到的情况感到有点困惑。主机上的显示容器使用了超过100%的CPU。这让我认为节点进程正在耗尽CPU。当我在主机上运行并看到节点进程使用了超过100%的CPU时,就确认了这一点。 当我跳入docker容器时,我看到该节点只使用了54%的CPU,并且处理在两个内核之间进行。我希望看到一个核心被最大化,另一个为0,因为Node是单线程的。 我发现了这个QA,看起来操作系统可能在内核

  • 问题内容: 我正在用Python做一个机器学习项目,所以我必须做并行预测功能,这是我在程序中使用的功能。 问题是我所有的CPU仅加载20-40%(总和为100%)。我使用multiprocessing.dummy,因为我在酸洗功能中的多处理模块有一些问题。 问题答案: 使用时,您使用的是线程,而不是进程: 复制API的API,但仅不过是模块周围的包装器。 这意味着您受到全局解释器锁(GIL)的限制

  • 我在应用程序中使用。在环境中运行应用程序时,应用程序使用的不足1%。当同一个应用程序在我的服务器上运行时,它将使用100%的。当禁用线程时,将恢复正常。 我正在使用和。 下面是线程: 为什么要使用100%的?

  • GC报错的根原因是? 服务内部报错持久层异常 然后一个sql也陆续报错 这是这个sql代码中的mybatis-push的构造函数(这张表数据才189条) 这是其它接口的报错,同样是构造函数的报错 查询了报错信息的原因,可能是查询的数据量过大,导致内存不足,触发了垃圾回收,但垃圾回收效果不佳,最终导致了 GC overhead limit exceeded 错误。可是程序就最近出现问题,用户数量没有

  • 当我尝试使用正则表达式提取器从Jmeter中的一个站点提取大量数据时,我发现了一些奇怪的事情,Jmeter需要很长的时间(>50分钟) 模板: 匹配号:-->获取所有匹配项 这个正则表达式运行在一个250行的HTML源页面上,因此它可能会在该页面上为这个表达式找到100多个匹配项(正如我所说的,我正在提取一堆数据)