Posted on 2018-12-10 15:59
為自己代言 閱讀(192)
評論(0) 編輯 收藏 所屬分類:
Linux/mysql調(diào)優(yōu)
或者按Shift+p公司生產(chǎn)服務(wù)上常常出現(xiàn) CPU 100% 問題,需要快速定位問題出現(xiàn)在那里,以下備注解決方法步驟:
1: 工具:top方法:
• 執(zhí)行top -c ,顯示進(jìn)程運行信息列表
•
鍵入P (大寫p),進(jìn)程按照CPU使用率排序 (
輸入大寫P,則結(jié)果按CPU占用降序排序。輸入大寫M,結(jié)果按內(nèi)存占用降序排序。(注:大寫P可以在capslock狀態(tài)輸入p,或者按Shift+p)

如上圖找出最耗CPU 進(jìn)程 10765
統(tǒng)計信息區(qū)前五行是系統(tǒng)整體的統(tǒng)計信息。第一行是任務(wù)隊列信息,同 uptime 命令的執(zhí)行結(jié)果。其內(nèi)容如下:
01:06:48 | 當(dāng)前時間 |
up 1:22 | 系統(tǒng)運行時間,格式為時:分 |
1 user | 當(dāng)前登錄用戶數(shù) |
load average: 0.06, 0.60, 0.48 | 系統(tǒng)負(fù)載,即任務(wù)隊列的平均長度。 三個數(shù)值分別為 1分鐘、5分鐘、15分鐘前到現(xiàn)在的平均值。 |
步驟二:找出最耗CPU的線程- top -Hp 10765 顯示一個進(jìn)程的線程運行信息列表
- 鍵入shift +p 線程按照CPU使用率降序排序
步驟三: 把 10765 轉(zhuǎn)化成16進(jìn)制(因為堆棧是線程id是十六進(jìn)制) 命令: printf '%x' 10765 輸出結(jié)果:2a0d步驟四: 使用JVM命令 jstatck jstack 10765 | grep '2a0d' -C5 --color 打印堆棧信息,通過id 過濾到線程的堆棧信息。以下是top 其它常用命令:附常用操作:
top //每隔5秒顯式所有進(jìn)程的資源占用情況
top -d 2 //每隔2秒顯式所有進(jìn)程的資源占用情況
top -c //每隔5秒顯式進(jìn)程的資源占用情況,并顯示進(jìn)程的命令行參數(shù)(默認(rèn)只有進(jìn)程名)
top -p 1111 -p 6789//每隔5秒顯示pid是1111和pid是6789的兩個進(jìn)程的資源占用情況
top -d 2 -c -p 1111//每隔2秒顯示pid是1111的進(jìn)程的資源使用情況,并顯式該進(jìn)程啟動的命令行參數(shù)