linux下查找CPU使用率過高的進程


總結

  • top 命令:查看進程級別的cpu使用情況。
  • vmstat 命令:查看系統級別的cpu使用情況。

top 命令可以查看進程的CPU、內存等資源的使用情況

在top命令運行過程中可以通過top的內部命令做顯示方式的控制。   

  1- 開啟或關閉顯示所有cpu使用詳細情況
  l - 關閉或開啟第一部分第一行 top 信息的表示
  t - 關閉或開啟第一部分第二行 Tasks 和第三行 Cpus 信息的表示
  m - 關閉或開啟第一部分第四行 Mem 和 第五行 Swap 信息的表示
  N - 以 PID 的大小的順序排列表示進程列表(第三部分后述)
  P - 以 CPU 占用率大小的順序排列進程列表 (第三部分后述)
  M - 以內存占用率大小的順序排列進程列表 (第三部分后述)
  h - 顯示幫助
  n - 設置在進程列表所顯示進程的數量
  q - 退出 top
  s - 改變畫面更新頻率(輸入數字)

vmstat命令可以查看系統整體的cpu,內存的使用情況

    r: 表示系統中 CPU 等待處理的線程。由於 CPU 每次只能處理一個線程,所以,該數值越大,通常表示系統運行越慢。
    us:用戶模式消耗的 CPU 時間百分比。該值較高時,說明用戶進程消耗的 CPU 時間比較多,比如,如果該值長期超過 50%,則需要對程序算法或代碼等進行優化。
    sy:內核模式消耗的 CPU 時間百分比。
    wa:IO 等待消耗的 CPU 時間百分比。該值較高時,說明 IO 等待比較嚴重,這可能磁盤大量作隨機訪問造成的,也可能是磁盤性能出現了瓶頸。
    id:處於空閑狀態的 CPU 時間百分比。如果該值持續為 0,同時 sy 是 us 的兩倍,則通常說明系統則面臨着 CPU 資源的短缺。

把CPU占用率較高的進程kill掉

top命令查看對cpu消耗大的進程,直接輸入"k",然后輸入相應進程的PID號即可終止該進程。

通過top觀察cpu很空閑,但是負載比較高的情況:

  • load average 是對 CPU 負載的評估,其值越高,說明其任務隊列越長,處於等待執行的任務越多。
  • 出現此種情況時,可能是由於僵死進程導致的。可以通過指令 ps -axjf 查看是否存在 D 狀態進程。
  • D 狀態是指不可中斷的睡眠狀態。該狀態的進程無法被 kill,也無法自行退出。只能通過恢復其依賴的資源或者重啟系統來解決


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM