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

對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.
本篇發表於 My_Note-Unix。將永久鏈結加入書籤。

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

  1. 李小白 說道:

    Zombie 好像 kill 不掉喔...不然他就不叫 Zombie了

  2. Tsung 說道:

    唷唷, soga.
    因為我的 Zombie 的程式, 看起來都還蠻重要的, 所以都沒砍過. XD

  3. ^^ 說道:

    您覺得升級cpu跟換....硬體硬碟陣列那個有效呢?

  4. Tsung 說道:

    要看你們使用量, 是操在哪邊, 操在 IO, 當然就是硬體陣列, 若是操在計算, 就是升級 CPU. 🙂

發表迴響

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