【人在營運囧途_01】20個Linux系統內建監視工具:top

來源:互聯網
上載者:User
       人在營運囧途、常常纏綿著伺服器的效能問題、如:I/O、CPU、記憶體、網路等瓶頸
       那麼系統營運、豈能酣眠?以下工具有提神醒腦之功效喲~(@^_^@)~
       
       ⑴ top
       
          寫在前面的話、這裡 Rocky 想澄清一點、竊以為、top 最佳實務應該是:
          "想要找出最損耗 CPU 資源的那個進程"
          找出來之後、按【P】、強制以 CPU 使用排序
          
          有別於 ps 的靜態輸出、top 可持續監測進程的工作狀態、預設重新整理頻率為 5 次/s、不過選項【-d】可進行修改
          
          top 預設以 CPU 使用率(%CPU)排序、按【M】則以記憶體(%MEM)排序、恢複按【P】、退出按【q】
          
          top 輸出結果可分 2 部分:整個系統的資源使用狀況和每個進程的資源使用方式
          

          先看上半部分的輸出案例:

top - 00:09:57 up  3:22,  2 users,  load average: 0.06, 0.17, 0.12Tasks: 153 total,   2 running, 150 sleeping,   0 stopped,   1 zombieCpu(s):  1.2%us,  1.2%sy,  0.1%ni, 96.6%id,  0.8%wa,  0.0%hi,  0.0%si,  0.1%stMem:   1998848k total,   825504k used,  1173344k free,    77180k buffersSwap:        0k total,        0k used,        0k free,   421704k cached

          ① 第一行【top】顯示的內容:
             ● 目前時間:00:09:57
             ● 開機到目前為止所經過的時間:3:22 時
             ● 已經登入系統的使用者人數:2
             ● 系統在每 1、5、15分鐘的平均使用負載、越小代表系統越閑置、若 >1 則要注意
             
          ② 第二行【Tasks】顯示的內容:
             目前程式的總量和每個程式在神馬狀態(running、sleeping、stopped、zombie)
             需要注意的是zombie、如果非0、那麼需要注意
             使用 "ps -lef | grep defunct"找出殭屍進程
             有些zombie進程即便kill -9照舊置若罔聞、佔著茅坑不拉屎

[root@Rocky ~]# ps -lef | grep defunct1 Z root      8519  8487  0  78   0 -     0 exit   Mar28 ?        00:00:00 [Xsession] <defunct>0 R root     17710  8875  0  78   0 -  1282 -      00:41 pts/1    00:00:00 grep defunct

             完全清除zombie進程方法如下:
             ⒈ kill -18 PPID(ppid是其父進程、這裡是8487)
                ##告訴父進程、其子已死、請收回所配資源
                ##如果不行、請看第 2 點
             ⒉ 殺死zombie的父進程、不過、這之前先得把zombie的兄弟給幹掉
                kill -15 PID1 PID2
                而後、"kill -9 PPID"
             
          ③ 第三行【Cpu(s)】顯示CPU的整體負載:
             特別注意【%wa】、這個代表 I/O wait、通常你機器變慢 I/O 是其主要的貢獻者
             另外、如果是多核、按【1】卻換不同 CPU的負載率
             
          ④ 注意 Swap 的使用率、越小越好
          
          
          再來看下半部分的輸出案例:

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                            8470 root      15   0 53820  10m 5720 S  3.9  0.5   0:27.10 Xorg                                                                  1 root      15   0  2176  652  556 S  0.0  0.0   0:03.12 init                                                                  2 root      RT  -5     0    0    0 S  0.0  0.0   0:00.00 migration/0                                                           3 root      34  19     0    0    0 S  0.0  0.0   0:00.01 ksoftirqd/0                                                           4 root      RT  -5     0    0    0 S  0.0  0.0   0:00.00 watchdog/0                                                            5 root      10  -5     0    0    0 S  0.0  0.0   0:00.04 events/0                                                              6 root      12  -5     0    0    0 S  0.0  0.0   0:00.00 khelper 

          ① PID:每個進程的id
          ② USER:每個進程的所屬使用者
          ③ PR:priority的簡寫、進程的優先執行順序、越小越好
          ④ NI:nice的簡寫、
          ⑤ %CPU:CPU 使用率
          ⑥ %MEM:記憶體使用量率
          ⑦ TIME+  :累計 CPU 的使用時間
          
          
          下面介紹一些常見的用法
          
          Ⅰ 每 2 秒更新一次 top: top -d 2
          Ⅱ 將 top 輸出 2 次並把結果重新導向到/tmp/top.txt:top -b -n 2 > /tmp/top.txt
          Ⅲ 指定 某個進程的 top 輸出:top -p PID

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.