Linux 列出系統 Zombie 狀態的程式資源 與 計算 CPU 總使用量

Zombie 就是已經呈現 殭屍狀態(Z) 的 Process, 平常的系統裡面不應該看到這種狀態才對.

註: 我的 Desktop 似乎蠻常看到. XD

使用 top 查看程式資源統計資訊

由 top 可以知道目前系統有多少個 zombie 程式 的 統計資訊.

  • /usr/bin/top -b -i -n 1 # 由下述可見有 1個zombie (殭屍)

    top - 22:42:44 up  1:37,  4 users,  load average: 0.57, 0.61, 0.93
    Tasks: 157 total,   1 running, 155 sleeping,   0 stopped,   1 zombie
    Cpu(s): 49.5%us,  4.3%sy,  1.6%ni, 42.0%id,  2.5%wa,  0.1%hi,  0.1%si,  0.0%st
    Mem:   1026116k total,   927496k used,    98620k free,    81600k buffers
    Swap:  1012084k total,    16456k used,   995628k free,   343236k cached

      PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
     6869 user      20   0  2464 1060  776 R  0.0  0.1   0:00.00 top

  • TOP 參數說明
    • -b - Batch mode
    • -n - how many itterations (-n number)
    • -i : Idle Processes toggle

使用 ps 取得 程式狀態 與 PID

  • ps aux | grep -w Z # 列出整個 pid 的 process 資訊

    user       2192  0.0  0.0      0     0 ?        Z    21:05   0:00 [scim] <defunct>

  • ps aux | awk '{print $8 " " $2}' | grep -w Z # 列出 Z + pid

    Z 2192

  • ps aux | awk '$8=="Z" {print $2}' # 只抓出 pid

    2192

  • 抓到此 PID, 再看情況要不要 kill 掉囉~

計算某程式吃的總 CPU 資源

下述為計算 Apache 全部使用掉多少 CPU 資源加總.

使用 TOP 計算
  • $ /usr/bin/top -d 2 -n 1 | awk '/apache/{count += $9;}; END  {print count};' # 可以知道 CPU 總使用量

    45%

使用 ps aux 計算
  • $ ps aux | awk '/apache/{count += $3;}; END  {print count};' # 這個會比較準.

    45.6%

相關網頁

作者: Tsung

對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.

在〈Linux 列出系統 Zombie 狀態的程式資源 與 計算 CPU 總使用量〉中有 4 則留言

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料