最近發現服務一個共用服務接口的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 閱讀(2864)
評論(2) 編輯 收藏