性能测试监控-CPU消耗过高

压测过程中,发现应用服务器的CPU使用率比较高(>80%),有两种情况
1、接口的性能非常好,比如响应时间<10ms,tps很高,此时CPU使用率高是正常的,不需要优化2、接口性能不好,比如响应时间>200ms,tps很低,此时需要考虑优化

CPU消耗高可能的原因

1、使用了复杂的算法,比如加密、解密
2、压缩、解压、序列化(比如tojson,fromjson)等操作
3、代码bug,比如死循环

定位方法

system CPU 还是user CPU高

从prometheus监控中查看system CPU和user CPU哪一个更高

user CPU高

1、使用 top 命令来查看 CPU 占用情况,确认是哪一个进程导致了高 CPU 使用: top
2、使用top命令配合 -H 参数,定位最占用 CPU 的线程: top -Hp PID
3、printf “%x\n” threadId 将线程号转换成16进制
4、使用jstack获取线程堆栈信息:jstack PID > thread_dump.txt,从thread_dump.txt查找第3步定位到的线程号,查看线程信息,如第3步定位到的线程号是3425

"Thread-3425" #3425 prio=5 os_prio=0 tid=0x00007f3e2a080800 nid=0x4e9f runnable [0x00007f3e278fe000]
java.lang.Thread.State: RUNNABLE
at com.example.validator.InputValidator.v

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值