JAVA应用服务器如何快速定位CPU问题

如果服务器上部署了多个Java站点服务和Java微服务,并且突然接收到CPU异常告警,我们需要逐步确定是哪个服务进程造成了CPU过载,接着是哪个线程,并最终定位到是哪段代码导致了这个问题

简要步骤如下:

步骤一、找到最耗CPU的进程

工具:top

方法:top

步骤二、找到最耗CPU的线程

工具:top -Hp

进程30528内,最耗CPU的线程PID为30743。

步骤三、查看堆栈定位线程

定位进程在干嘛,定位对应代码首先,将线程PID转化为16进制。工具:printf

方法:printf “%x\n” 30743

30743对应的16进制是7817,当然,这一步也可以用计算器来实现

 

之所以要转化为16进制,是因为堆栈里,线程id是用16进制表示的

步骤四、查看堆栈,找到线程在干嘛。

工具:jstack

安装:

注意:如果是用yum 安装的openjdk ,是不会带java 开发调试工具 jstack jmap 等.若是想要使用jstack命令查看java程序线程信息,安装jstack 直接用 yum install jstack 会报错 No package jstack available

 yum list --showduplicate | grep java-1.8 | grep devel 找到合适的jdk后 yum install java-1.8.0-openjdk-devel.x86_64

方法:jstack 1076|grep ‘7817’ -C5 –color

如上图,找到了耗CPU高的线程对应的线程名称,以及看到了该线程正在执行代码的堆栈。最后,根据堆栈里的信息,找到对应的代码

原创文章,作者:guozi,如若转载,请注明出处:https://www.sudun.com/ask/78857.html

(0)
guozi's avatarguozi
上一篇 2024年5月30日 上午11:30
下一篇 2024年5月30日 上午11:48

相关推荐

  • 台积电wannacry,台积电网站被攻击过吗知乎视频

    全球领先的半导体制造商之一台积电最近遭遇网络攻击。该消息引起广泛关注,并引发知乎热议。大家纷纷猜测这次攻击的背景和原因,并对台积电网站遭受攻击的具体情况表示担忧。那么,台积电的网站…

    行业资讯 2024年5月15日
    0
  • 长沙做服务器的公司,长沙服务器租赁

    8、越来越多的中小企业参与:随着互联网经济的发展和信息化进程的加快,中小企业也开始关注线上业务,选择租用服务器来开展业务。满足他们的需要。做。他们自己的需要。这将吸引更多潜在客户进…

    行业资讯 2024年4月15日
    0
  • 如何搭建我的世界国际服?

    如果你是一位游戏爱好者,想要搭建自己的世界国际服,那么云服务器将是你必不可少的利器。但是,在众多的云服务器提供商中,如何选择适合自己的呢?在本文中,我们将会为你介绍什么是云服务器、…

    行业资讯 2024年3月20日
    0
  • 华为荣耀X40的详细参数配置表

    今天,我将为大家介绍一款备受关注的手机——华为荣耀X40。它备受瞩目的原因不仅仅是因为它是华为旗下的新品,更是因为它拥有令人惊艳的性能表现。那么,这款华为荣耀X40到底有何特点?它…

    行业资讯 2024年4月11日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注