最近发现服务一个共用服务接口的CPU占用比较高,以下是排查记录
1 查寻当前CPU占用高的PID
ps Hh -eo pid,tid,pcpu | sort -nk3 |tail
17259 17443 1.4
17259 19460 1.5
17259 23916 1.5
17259 17457 1.6
17259 18260 1.6
17259 22789 1.7
17259 17472 1.8
17259 17349 2.0
17259 17356 2.0
17259 17455 2.0
2 查找出当前PID使用的线程排名靠前的
ps -mp 17259 -o THREAD,tid,time
3找出线程的转换为16进制
:
printf "%x\n" 15231
3b7f
4 查找代码
jstack 15016 |grep 3b7f -A 10
不过,确实没有什么信息。感觉是程序SOCKT这一块,经过查看代码,主要是解压缩ZLIB这一块的处理性能比较差。
已经确定是JAVA自带的ZLIB性能问题。换作JZLIB来替换,压测了二天,已经很稳定了。我的微信公众号,欢迎沟通学习。
posted on 2015-12-10 17:58
alexcai 阅读(2857)
评论(2) 编辑 收藏