1、查看系統CPU負載及使用率的命令為:top vmstat
top 命令:查看進程級別的cpu使用情況。
vmstat 命令:查看系統級別的cpu使用情況。
下面通過具體的圖例來分析:
1.1 top 命令可以查看進程的CPU、內存等資源的使用情況。
在top命令運行過程中可以通過top的內部命令做顯示方式的控制。
1- 開啟或關閉顯示所有cpu使用詳細情況
l - 關閉或開啟第一部分第一行 top 信息的表示
t - 關閉或開啟第一部分第二行 Tasks 和第三行 Cpus 信息的表示
m - 關閉或開啟第一部分第四行 Mem 和 第五行 Swap 信息的表示
N - 以 PID 的大小的順序排列表示進程列表(第三部分后述)
P - 以 CPU 占用率大小的順序排列進程列表 (第三部分后述)
M - 以內存占用率大小的順序排列進程列表 (第三部分后述)
h - 顯示幫助
n - 設置在進程列表所顯示進程的數量
q - 退出 top
s - 改變畫面更新頻率(輸入數字)
1.2 vmstat命令可以查看系統整體的cpu,內存的使用情況
r: 表示系統中 CPU 等待處理的線程。由於 CPU 每次只能處理一個線程,所以,該數值越大,通常表示系統運行越慢。
us:用戶模式消耗的 CPU 時間百分比。該值較高時,說明用戶進程消耗的 CPU 時間比較多,比如,如果該值長期超過 50%,則需要對程序算法或代碼等進行優化。
sy:內核模式消耗的 CPU 時間百分比。
wa:IO 等待消耗的 CPU 時間百分比。該值較高時,說明 IO 等待比較嚴重,這可能磁盤大量作隨機訪問造成的,也可能是磁盤性能出現了瓶頸。
id:處於空閑狀態的 CPU 時間百分比。如果該值持續為 0,同時 sy 是 us 的兩倍,則通常說明系統則面臨着 CPU 資源的短缺。
2、詳細操作進程占用cpu較高和cpu負載較高
2.1 使用top直接終止cpu消耗大的進程:
top命令查看對cpu消耗大的進程,直接輸入"k",然后輸入相應進程的PID號即可終止該進程。
2.2 通過top觀察cpu很空閑,但是負載比較高的情況:
load average 是對 CPU 負載的評估,其值越高,說明其任務隊列越長,處於等待執行的任務越多。
出現此種情況時,可能是由於僵死進程導致的。可以通過指令 ps -axjf 查看是否存在 D 狀態進程。
D 狀態是指不可中斷的睡眠狀態。該狀態的進程無法被 kill,也無法自行退出。只能通過恢復其依賴的資源或者重啟系統來解決。
轉自:https://www.cnblogs.com/brightbrother/p/8124915.html