星期四, 元月 07, 2010

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%

相關網頁

相關標籤

this is comment icon Kill Zombie? [回覆]

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

Comment by 李小白 (01/11/2010 19:11)

this is comment icon 回 李小白 [回覆]

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

Comment by Tsung (01/11/2010 22:12)
Add this page to del.icio.us

發表迴響

標題

內容 (限制 1000 字)

暱稱

電子郵件

個人網頁


 authimage


PS: 若無法留言, 請先確認是否有打開 JavaScript, 造成您的困擾, 實在萬分對不起 Orz...(如果無法留言, 勞煩可以發信給我好嗎? 謝謝.)
PS2: 若您的留言被誤判, 我都會再自行看過, 不需要一直重覆張貼~