伺服器CPU過高,排查方法

2021-09-24 03:43:13 字數 688 閱讀 9627

top                                                #定位異常的程序

top -h -p pid #檢視異常的執行緒

strace -t -r -c -p pid #檢視系統呼叫和花費的時間

printf "%x/n"執行緒號 #將異常執行緒轉化為16進製制

jstack 程序號|grep 執行緒號(16進製制異常執行緒號)-a90 #定位異常的**

使用【top】命令定位異常程序,可發現12836的cpu和記憶體佔用率都非常高;

top 命令預設情況下,是每 3 秒重新整理一次。也可以通過 top -d 《重新整理時間間隔》 來指定重新整理頻率,如top -d 0.1 或top -d 0.01 等。top 執行時,也可以按「s 」鍵,修改時間間隔。

使用【top -h -p 程序號】檢視異常執行緒

使用【printf "%x\n" 執行緒號】將異常執行緒號轉化為16進製制

使用【jstack 程序號|grep 16進製制異常執行緒號 -a90】來定位異常**的位置(最後的-a90是日誌行數,也可以輸出為文字檔案或使用其他數字)。可以看到異常**的位置

可以參考:

線上占用CPU過高問題排查

最近博主在搬磚的時候遇到了線上的一些問題,大致情況是這樣的。表象 服務掛了,cpu占用比較高,一直在百分之九十多。肯定有小夥伴會說常規操作 reboot一下完事兒了。其實這樣吧沒毛病,但是解決不了根本問題。啥也不多說。咱們先說下線上排查三板斧。就算不能解決問題也能猜個差不多。top hp命令找出執行...

mysql占用伺服器cpu過高的原因以及解決辦法

登陸mysql mysql p u p mysql show processlist show processlist 命令詳解 processlist命令的輸出結果顯示了有哪些執行緒在執行,可以幫助識別出有問題的查詢語句。下面是mysql占用cpu高處理的乙個例子,希望對遇到類似問題的朋友們有點啟...

Shell找出伺服器占用CPU 記憶體過高的程序

快速找出占用伺服器資源過高程序,我們可以結合ps命令來寫乙個shell指令碼,以便快速找出占用資源過高的程序。bin bash echo cpu top 10 ps eo pid,pcpu,pmem,args sort pcpu head n 10 echo memeory top 10 ps eo...