JVM的CPU资源占用过高问题的排查过程是怎么样的

技术JVM的CPU资源占用过高问题的排查过程是怎么样的今天就跟大家聊聊有关JVM的CPU资源占用过高问题的排查过程是怎么样的,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有

今天跟大家聊聊JVM CPU资源过多的故障排除过程,可能很多人都不太了解。为了让你更好地理解,边肖为你总结了以下内容,希望你能从这篇文章中有所收获。

早上一个在线应用中的一个JVM的CPU比例突然飙升到192%,一直没有降下来,导致监控一直报警。我很久没有处理这个问题了。现在我将总结并记录故障排除步骤。(以下图片并非网上问题截图,涉及公司业务。)

1.通过top命令检查当前机器的CPU使用情况。

JVM的CPU资源占用过高问题的排查过程是怎么样的

这时候发现,如果Java的进程占用太多,又不能一直下来,那就要检查是什么线程造成的高比例。以图中流程为例。如果发现PID为31357的Java进程的CPU比率总是很高,记录下它的PID。

2.检查Java进程中的线程占用情况。

顶部-H -p31357

说明:-H表示显示线程,-p表示指定进程。

JVM的CPU资源占用过高问题的排查过程是怎么样的

可以看到CPU占用了大量的线程,记下它们的PID。假设31357的CPU始终是50%。

3.通过jstack命令获取资源占用异常的线程栈,可以临时保存在文件中查看。

jstack 31357 jstack.31357.log

JVM的CPU资源占用过高问题的排查过程是怎么样的

您可以看到上面指定线程的堆栈信息。

如果想查看线程中锁的其他信息,可以添加一个-l参数。

JVM的CPU资源占用过高问题的排查过程是怎么样的

4.上述方法用于工艺正常时的堆栈打印。今天,jstack -l命令没有响应。估计是CPU一直站着,无法执行正常命令。根据提示【目标进程不响应时可以使用-f选项】,只能放大。

jstack-F“PID”jstack。“PID”。文本文件(textfile)

吐槽的实际日志结果如下:

JVM的CPU资源占用过高问题的排查过程是怎么样的

发现很多线程被阻塞,有用的结果在这里:

JVM的CPU资源占用过高问题的排查过程是怎么样的

显然,线程19576一直在运行,一直在执行EXCEL导出的相关方法。这就是问题所在。接下来的任务是检查这个地方的代码逻辑。

Jstack命令格式:

jstack [选项] pid

参数:

-f jstack [-l]在PID无法响应时强制打印堆栈。

-长长的名单。打印关于锁的附加信息,例如属于java.util.concurrent的可拥有的同步器列表.

-m混合模式输出(包括java和本地c/c片段)堆栈。

java应用程序的进程号。

记得没错的话这几个参数是互斥的,不能联合使用。

5.搜索数据后发现,用jps命令检查java进程的pid更实用:

JVM的CPU资源占用过高问题的排查过程是怎么样的

命令格式

jps [选项] [ hostid ]

参数描述

-m输出传递给main方法的参数,如果是嵌入式JVM,输出为null。

-l输出应用主类的完整包名或应用JAR文件的完整路径。

-v输出传递给JVM的参数。

这三个参数一起显示了更详细的信息:

JVM的CPU资源占用过高问题的排查过程是怎么样的

发现JMX的远程端口是在这些Java进程的启动参数中打开的。正常情况下,通过jconsole远程连接可以看到JVM的日常参数。例如,本地访问上图中的pay.war流程:

JVM的CPU资源占用过高问题的排查过程是怎么样的

JVM的CPU资源占用过高问题的排查过程是怎么样的

JVM的CPU资源占用过高问题的排查过程是怎么样的

看完以上,你对JVM的CPU资源占用问题的故障排除过程有进一步的了解吗?如果您想了解更多知识或相关内容,请关注行业资讯频道,感谢您的支持。

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/44218.html

(0)

相关推荐

  • 简单平面图怎么画,ppt怎么做简单的平面图

    技术简单平面图怎么画,ppt怎么做简单的平面图1/7
    第一步:在PPT2010中,单击“插入”选项卡,在“插图”组中单击“形状”按钮,在弹出的下拉面板中选择“线条”中的“箭头”,在PPT编辑区按着shift键用鼠标横向拖

    生活 2021年10月30日
  • 借助IIS管理器怎么用手机测试HTML页面

    技术借助IIS管理器怎么用手机测试HTML页面这篇文章将为大家详细讲解有关借助IIS管理器怎么用手机测试HTML页面,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。这里分享一种方法,借助

    攻略 2021年11月24日
  • 如何用Python爬取全网baisi趣图

    技术如何用Python爬取全网baisi趣图今天就跟大家聊聊有关如何用Python爬取全网baisi趣图,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。前言bais

    攻略 2021年10月25日
  • MySQL密码该怎么备忘

    技术MySQL密码该怎么备忘这篇文章将为大家详细讲解有关MySQL密码该怎么备忘,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。在windows下: 打开命令行窗口,停止m

    攻略 2021年11月20日
  • 微型计算机中的内存储器所用材料是什么

    技术微型计算机中的内存储器所用材料是什么这篇文章主要介绍“微型计算机中的内存储器所用材料是什么”,在日常操作中,相信很多人在微型计算机中的内存储器所用材料是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法

    攻略 2021年11月9日
  • css3翻转效果(在css中可以实现旋转效果的属性)

    技术css3如何实现元素左右翻转这篇文章主要介绍了css3如何实现元素左右翻转,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

    攻略 2021年12月16日