性能问题定位二:隔段时间某个进程导致CPU升高的问题

本文详细记录了一次排查服务器上Tomcat进程CPU使用率不规律升高的过程,通过`mpstat`、`pidstat`等命令定位到具体线程,发现是由于`reloadable`设置为`true`导致的频繁加载Web应用。解决方案是将`server.xml`中相应Context的`reloadable`属性设置为`false`,重启Tomcat后,问题得到解决。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

发现问题过程

首先打开项目服务器,此服务器部署了很多项目,看他在没有压力情况下,资源使用率

命令:top

load average:负载也不高

1个进程在运行

zombie:0,没有僵尸进程

2个CPU:user和sys 都不高

mem:还剩2个G,充足

再看进程CPU使用情况:都比较底

但是在观察一段时间返现进程突然升高,然后又降低了

这是怎么回事?

为了进一步查看CPU使用率

命令:mpstat -P ALL 1 观察一段时间

如图,进一步验证了CPU隔断时间就会升高,那是那个进程或线程导致升高呢

命令:pidstat -ut 1,观察一段时间

如图:48秒和59秒分别出现,看到都是进程:10764中的线程:10814,导致CPU升高,所以,定位线程后,下面就需要定位为什么这个线程导致CPU升高

命令:printf "%x\n" 10814(TID)十进制转成16进制

命令:jstack 10764 | grep 2a3e -A 30,如果没有出现多试几次此命令

[adminm@test_tomcat1 ~]$ jstack 10764 | grep 2a3e -A 30

"ContainerBackgroundProcessor[StandardEngine[Catalina]]" #30 daemon prio=5 os_prio=0 tid=0x00007fea0c0c1800 nid=0x2a3e runnable [0x00007fe9ed9d1000]</

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值