Java进程cpu频繁100%的解决方法-创新互联-成都快上网建站

Java进程cpu频繁100%的解决方法-创新互联

这篇文章将为大家详细讲解有关Java进程cpu频繁100%的解决方法,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

我们一直强调做网站、网站制作对于企业的重要性,如果您也觉得重要,那么就需要我们慎重对待,选择一个安全靠谱的网站建设公司,企业网站我们建议是要么不做,要么就做好,让网站能真正成为企业发展过程中的有力推手。专业的建站公司不一定是大公司,创新互联作为专业的网络公司选择我们就是放心。

1.在一次周末收到部门的反馈,线上机器java进程的cpu会频繁100% 监控系统发了很多报警邮件,于是登录跳板机进行排查解决2.使用top命令查看进程情况

Java进程cpu频繁100%的解决方法

Java进程cpu频繁100%的解决方法

发现每隔个几秒cpu就达到100%左右,报警邮件确实是诚不欺我,java进程有问题

2.于是查看下到底是java进程下的哪个线程造成的cpu频繁100%

使用top -Hp 25567 查看进程下的线程信息

Java进程cpu频繁100%的解决方法

得到线程编号26250

3.查看该线程的栈信息

printf '%x\n' 26250 获取26250的16进制数为668a

jstack25567 |grep -A 30668a 得到该线程栈信息

Java进程cpu频繁100%的解决方法

ContainerBackgroundProcessor[StandardEngine[Catalina]] 这是什么任务,没见过啊,懵了

继续看下面的栈信息有apache.catalina之类的信息(上图没有截全)

我们的java服务是通过war包的形式发布到tomcat里的,想着是不是因为tomcat配置的问题

先网上查一下吧(吃了不了解tomcat底层的亏)

4.根据网上的资料,有一种说法说是因为tomcat的server.xml的reload属性设置为了true,那么reload属性有什么作用呢?

如果这个属性设为true,tomcat服务器在运行状态下会监视在WEB-INF/classes和WEB-INF/lib目录下class文件的改动,如果监测到有class文件被更新的,服务器会自动重新加载Web应用。在开发阶段将reloadable属性设为true,有助于调试,但这样用会加重服务器运行负荷,建议在Web应用的发存阶段将reloadable设为false。

看到这赶紧和其他节点的tomcat配置对比一下,发现其他节点的reload都配置为false,只有这一台有问题了的设置为了true。

什么也不说了修改reload为false进行重启,当然如果真的不是因为reload配置导致cpu频繁100%的话,设置reload为false对系统也是有好处的。

5.修改reload为false进行验证

修改配置重启后果然没有再频繁出现cpu 100%了,至于为什么运行这么久监控系统才发通知邮件呢,后来做监控的小伙伴说是因为他们那边信息采集出了问题,没有发现。

关于Java进程cpu频繁100%的解决方法就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。


新闻名称:Java进程cpu频繁100%的解决方法-创新互联
本文网址:http://kswjz.com/article/iisjd.html
扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流