【原】cpu消耗高,查看对应的线程栈信息

时间:2024-01-13 17:05:38

在压测过程中,有时候cpu会飙升,造成这种现象的原因很多,

可能是gc造成的,也可能是某个方法造成的,

如果从找对应的方法入手,下面简单罗列下步骤:

1.top,获取pid

【原】cpu消耗高,查看对应的线程栈信息

下面cpu消耗90%左右

【原】cpu消耗高,查看对应的线程栈信息

2.top -Hp pid,获取cpu切片时间最多的tid

【原】cpu消耗高,查看对应的线程栈信息

32209cpu切片时间最多

【原】cpu消耗高,查看对应的线程栈信息

3.printf "%x\n" tid,转换为16进制

【原】cpu消耗高,查看对应的线程栈信息

4.jstack pid |grep tid -A 20,获取这个tid的线程栈信息

下图表示是打日志消耗cpu多

【原】cpu消耗高,查看对应的线程栈信息

优化方案:打印日志改为单线程,异步