top、htop、ps、dstat命令的使用

當系統運行較慢或我們的服務訪問較慢時,我們會查看系統進程運行的狀態,來查找原因,本文介紹一下幾個與進程查看相關的命令以及其用法:

      top:動態查看進程的變化,top可以持續檢測進程運行的狀態,在默認情況下,每次更新進程資源的時間爲3秒,不過,可以使用-d來進行修改。

      top命令用法:top[-d 數字]top [-bnp]

      參數:

           -d:後面可以接秒數,就是整個進程界面更新的秒數,默認是3秒;

           -b:以批次的方式執行top,通常會搭配數據流重定向來將批處理的結果輸出成爲文件;

           -n#:顯示多少批次,和-b一起使用

           -p:查看指定PID的進程信息·

      top執行過程中可以使用的按鍵命令:

           ?:顯示在top當中可以輸入的按鍵命令;

           k:給予某個PID一個進程號

           r:給予某個PID重新制定一個nice

top主要分爲兩個界面,上面的界面爲整個系統的資源使用狀態,基本上總共有六行,如圖所示:

      spacer.gif

      第一行(top...):可以按"l"鍵取消顯示或顯示此行信息;這一行顯示的信息分別爲

           21:58:16 目前的系統時間

           up 29 min 開機到目前爲止所經過的時間

            2users 已經登錄系統的用戶人數

           load average 系統在1,5,15分鐘的平均工作負載,代表的是過去1分鐘、5分鐘、15分鐘平均cpu上的等待進程數

      第二行(Tasks...):顯示的是目前進程的總量與個別進程在什麼狀態。比較需要注意的是最後的zombie那個數值,如果不是0,需要看看到底是哪個process變成殭屍了。

      第三行(%Cpu):顯示的是CPU的整體負載。其中,us代表用戶空間佔用CPU百分比;sy代表系統空間佔用CPU百分比;ni代表用戶進程空間內改變過優先級的進程佔用CPU百分比;id代表空閒空間百分比;wa代表等待進程佔用CPU百分比;hi代表處理硬件中斷佔用CPU百分比;si代表處理軟件中斷佔用CPU百分比;st代表被虛擬化程序佔用的CPU百分比。需要注意的是wa,這個選項代表的是I/Owait,通常系統會變慢都是I/O產生的問題比較大。因此,這裏需要注意這個選項耗用CPU的資源。如果是多內核的設備,可以按下數字"1"來切換成不同CPU的負載率。注意:第二行和第三行的內容可以按"t"鍵取消顯示或改變顯示方式

      第四行與第五行:表示目前的物理內存與虛擬內存的使用情況,要注意的是swap的使用量要儘量少,如果swap被大量使用,表示系統的物理內存不足。可以按下"m"鍵改變顯示方式或取消顯示;

      第六行:顯示各進程的狀態;

           PID:每個進程的ID

           USER:該進程所屬的用戶;

           PR:進程的優先執行順序,越小越早被執行

           NInice值。負值表示高優先級,正值表示低優先級

           VIRT:進程使用的虛擬內存總量。VIRT=SWAP+RES

           RES:進程使用的、未被換出的物理內存大小。RES=CODE+DATA

           SHR:共享內存大小

           S:代表進程的狀態

                 D=不可中斷的睡眠狀態
            R=
運行
            S=
睡眠
            T=
跟蹤/停止
            Z=
殭屍進程

                 +:前臺進程

             l:多線程進程

             N:低優先級進程

                 <:高優先級進程

                 ssessionleader

           %CPU:進程運行佔用CPU百分比

           %MEM:進程佔用內存百分比

           TIME+:進程使用的CPU時間總計

           COMMAND:命令名

      top默認按CPU使用率排序,如果要按內存使用率排序,可以按下"M";如果要按佔用CPU時間排序可以按下"T";如果按進程號排序可以按下"N";按下z則可以高亮顯示顏色;如果要返回按CPU使用率排序可以按下"P";如果要退出top可以按下"q"

     

      htop:與top相比,htop更加人性化。它可讓用戶交互式操作,支持顏色主題,可橫向或縱向滾動瀏覽進程列表,並支持鼠標操作。如圖所示是htop的顯示結果:

spacer.gif

      上面左上角顯示CPU、內存、交換區的使用情況,右邊顯示任務、負載、開機時間,下面就是進程實時狀況。

      下面是 F1~F10 的功能和對應的字母快捷鍵。

           F1:查看htop的使用幫助,用h?也可以顯示此功能,如圖所示:

                 spacer.gif

           F2:設置htop,如圖所示:可以設置左上角和右上角顯示的內容以及顏色設置等,使用S也可以顯示此功能;

                 spacer.gif

           F3:搜索進程,使用/也可以顯示此功能,如圖所示:

                 spacer.gif

           F4:增量進程過濾器,相當於關鍵字搜索,不區分大小寫,也可以用\打開此功能;如圖所示:

                 spacer.gif

           F5:顯示屬性結構,和pstree差不多,也可以用t打開此功能:

           F6:選擇排序方式,也可以使用<>來選擇;

           F7:可減少nice值,這樣就可以提高對應進程的優先級,也可以使用[實現此功能

           F8:可增加nice值,這樣就可以降低對應進程的優先級,也可以使用]實現此功能;

           F9:可對進程傳遞信號,也可以使用k鍵實現此功能;

           F10:退出htop,也可以和top一樣使用q;

      命令行選項:

         -C 使用一個單色的配色方案

           -d 設置延遲更新時間,單位秒

           -h 顯示htop 命令幫助信息

           -u 只顯示一個給定的用戶的過程

           -p 只顯示給定的PIDs

           -s 依此列來排序

           -v 顯示版本信息

 

      ps命令:ps命令列出的是當前那些進程的快照,就是執行ps命令的那個時刻的那些進程,如果想要動態的顯示進程信息,就可以使用top命令。ps是通過查看/proc中的信息來查看內核信息的。

      選項:

           a:所有與終端相關的進程;

                 spacer.gif

           x:所有與終端有關的進程;

                 spacer.gif

           u:以用戶爲中心組織進程狀態信息顯示

                 spacer.gif

           常用組合:aux

                 spacer.gif

                 USER:該 process 屬於那個使用者賬號的

                 PID :該 process 的號碼

                 %CPU:該 process 使用掉的 CPU 資源百分比

                 %MEM:該 process 所佔用的物理內存百分比

                 VSZ :該 process 使用掉的虛擬內存量 (Kbytes)

                 RSS :該 process 佔用的固定的內存量 (Kbytes)

                 TTY :該 process 是在那個終端機上面運作,若與終端機無關,則顯示 ?

                 STAT:該程序目前的狀態,主要的狀態有

                      R :該程序目前正在運作,或者是可被運作

                      S :該程序目前正在睡眠當中 (可說是 idle 狀態),但可被某些訊號 (signal) 喚醒。

                      T :該程序目前正在偵測或者是停止了

                      Z :該程序應該已經終止,但是其父程序卻無法正常的終止他,造成 zombie (疆屍程序的狀態

            START:該 process 被觸發啓動的時間

            TIME :該 process 實際使用 CPU 運作的時間

            COMMAND:該程序的實際指令

           -e:顯示所有進程

                 spacer.gif

           -f:顯示完整格式的進程信息;

                 spacer.gif

.          常用組合:-ef

                 spacer.gif

     -F:顯示完整格式的進程信息;

        spacer.gif

           -H:以層級結構來顯示進程的相關信息;

        spacer.gif

     常用組合:eFH

        spacer.gif

           o filed,filed2,... 自定義要顯示的字段;比如結果中只顯示進程號和命令:

                 spacer.gif

 

      dstat命令:

           dstat非常強大,可以實時的監控cpu、磁盤、網絡、IO、內存等使用情況。

           直接使用dstat,默認使用的是-cdngy參數,分別顯示cpudisknetpagesystem信息,默認是1秒顯示一條信息。可以在最後指定顯示一條信息的時間間隔,如dstat 5是每5秒顯示一條,dstat 5 3表示每5秒顯示一條,一共顯示3條。如圖所示爲dstat默認的輸出結果:

                 spacer.gif

           常用選項:

                 -c--cpu:只顯示cpu相關信息;

                      spacer.gif

                 -d,--disk:顯示磁盤的相關信息

                      spacer.gif

                 -g:顯示page相關的速率數據

                      spacer.gif

                 -mMemory的相關統計數據;

                      spacer.gif

                 -nInterface的相關統計數據;

                      spacer.gif

                 -p:顯示process的相關統計數據

                      spacer.gif

                 -r:顯示io請求的相關的統計數據

                      spacer.gif

                 -s:顯示swapped的相關統計數據

                      spacer.gif

           


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章