進程管理工具htop/glances/dstat的使用

        友情提醒:文件涉及到的實驗平臺爲vmware workstation 10 + Centos 6.6 X86_64,所述命令請謹慎使用。

    Centos linux中自帶了很多進程查看管理工具,諸如:ps ,top,vmstat除了這些之外還有很多提供類似功能的工具程序,這其中有三款高大上的工具 htop/glances/dstat。今天就來認識一下他們。

    工具一,htop:令人驚豔的類top工具

    htop是款類似於top的工具,但是htop提供的功能卻是top望塵莫及。

1.安裝

      htop非系統光盤中自帶的程序,請使用epel提供的yum源自行進行安裝,若你不會使用yum,請在老衲的文章中挑選關於yum的學習。若不知道epel地址的請自行問度娘。


2.界面說明

   wKioL1UtGYaA7DUyAAQ7TMRJ-qo568.jpg  

A區域使用彩色柱狀結構分別顯示CPU,Memory和Swap的使用情況。在同一個項目內不同的顏色柱表示不同的內容,各色柱體的多少分別表示佔用的百分比。顏色對比見下圖。

    wKiom1UtGV_ibcrDAADMFSvbuPw574.jpg

B區域是個統計信息區域。顯示任務負載和開機時間。

C區域顯示的是進程的信息。支持四個方向鍵和鼠標的直接操作。

    PID:進程ID

    USER:進程所有者的用戶名

    PR:進程的優先級別

    NI:進程的優先級別數值

    VIRT:進程佔用的虛擬內存值

    RES:進程佔用的物理內存值

    SHR:進程使用的共享內存值

    S:進程的狀態,其中S表示休眠,R表示正在運行,Z表示僵死狀態,N表示該進程優先值是負數

    CPU%:該進程佔用的CPU使用率

    MEM%:該進程佔用的物理內存和總內存的百分比

    TIME+:該進程啓動後佔用的總的CPU時間

    COMMAND:進程啓動的啓動命令名稱


D區域是個快捷鍵提示區:


F1
F2
F3
F4
F5
F6
F7
F8
F9
F10
help
setup
search
filter
tree
sortby
nice-
nice+
kill
quit
提供幫助信息
定義個性話的htop展示界面
定義關鍵字,在現有進程中搜索包含關鍵字的進程
定義關鍵字,在現有進程中過濾含有關鍵字的進程,並在C區域展示
以樹狀形式顯示C區域進程關係
定義一個標準,C區域展示的進程安裝該標準進行排序展示
實現對進程nice值的減小,這個只有root用戶可以操作
實現對進程nice值的增加
對C區域中的進程條目傳輸SINGLE信號
退出htop界面


3.快捷鍵說明與實踐

   1)打開htop界面:

[lijun@Test01 ~]$ which htop
/usr/bin/htop      ------------------>可以看到htop可被超級用戶root和普通用戶使用
[lijun@Test01 ~]$ htop   ---------->可以這樣打開htop工具,當然也同下面提供的選項一起使用

[lijun@Test01 ~]$ htop  -d # 

                     --->#爲數字,-d 可以指定htop界面中兩次刷新時間間隔時長,默認1/10秒

[lijun@Test01 ~]$ htop  -u usename

                                  ---->在htop界面中只顯示進程屬主爲 username 的進程 

   2)htop界面中快捷鍵使用展示

F1:只需在htop界面中按下F1鍵就可呼出幫助信息

wKiom1Utx0TxxqH1AAW5bVD469Q385.jpg


F2:只需在htop界面中按F2就可進入定製個性話htop界面,包括顯示色彩,顯示項目內容等。

    左側setup是可定製的項目,右側爲項目中的內容。

    使用上下左右方向鍵可以選擇,定製完後按F10退出定製界面。

wKiom1Utx8PxM6K1AALQMTJENIU700.jpg

F3:只需在htop界面中按F3就可進入搜索界面,輸入要搜索的關鍵字,即可在C區域中定位包含關鍵字的進程條目,被選中的條目會變色。ESC按鍵退出到正常htop界面。

wKioL1Utypby4y8dAAR93ALDeF8305.jpg

       在這個例子中看到,輸入關鍵字vim,那麼包好vim關鍵字的進程條目自動被選中並變色顯示。


F4:只需在htop界面中按F4就可進入定製過濾界面,輸入關鍵字,htop爲依照輸入的關鍵字,在C區域中顯示包含關鍵字的進程條目。ESC*2次或者回車鍵退出該界面。

wKioL1Uty4aR7mkhAAHmnnahafI336.jpg


F5:只需在htop界面中按F5,可實現在C區域中以樹狀形式顯示進程間的關係。

wKiom1UtysDiczIyAATbpmNVHL8060.jpg


F6:在C區域中進程顯示時,默認按照CPU%列的值爲標準進行排序的,想改變這種排序方式,定義一個新的參考列值,只需在htop界面中按F6進入。左側爲排序標準,上下方向鍵選擇,選中後按enter鍵即可。

wKiom1Uty-WB1XVNAAYNqCz2Pbg545.jpg


F7:調小進程nice值的,這個只有root用戶可用,建議配合F4一起使用。

先使用F4功能選出要調值的進程

wKiom1UtzMPyuCXvAAGFL8Tq0JY502.jpg

按Enter鍵,按F7給選中的進程調小nice值,按一次F7 該進程nice值減小1,比較下圖和上圖nice值的差別

wKioL1Utzo7xJxd4AAGJoEa7JVw725.jpg


F8:調大進程的nice值的,這個同F7使用類似,只是不限制用戶身份,當然“自家的孩子自己可以打,打別人家的。。。除了你是root”


F9:向進程傳遞Single信號的,建議同F4過濾一起使用。

先使用F4的功能選出實施動作的進程

wKiom1UtzjvzlFqtAAR93ALDeF8343.jpg


wKioL1Utz8_Rks6RAAGFL8Tq0JY050.jpg


按Enter鍵,再按F9進入信號選擇界面,左側爲信號,按上下方向鍵選擇。選擇後按Enter間發送信號,按ESC鍵取消發送。

wKiom1Utzsbg0J_DAALE_aLI8sQ783.jpg


再觀察被髮送15 SIGTERM信號後 vim進程的變化,顯示vim進程被正常解釋。

wKioL1Ut0LjRZxIjAADcySHGt3o402.jpg

    這就是htop,一款人性化的類top工具,超讚!!!,更多使用幫助,請自行man htop查閱。

    

    工具二 glance:系統監控工具中的"瑞士***"

    glance 是款開源的命令行系統監控工具。使用python語言開發。之所以稱之爲"瑞士***",是因爲如下原因:

      (1)囊括系統監控對象廣:

          能夠對:CPU,內存,磁盤I/O,網卡網絡流量,系統負載,文件系統等提供監控。

      (2)監控界面中顯示對象可自定義,可對監控對象顯示值自定義。

      (3)對現實終端屏幕沒有特殊要求。

      (4)支持C/S工作模式,1V1監控遠程主機數據。

      (5)可將監控數據輸出至文件,且可自定義文件的格式爲html或者cvs。

    1.工具的安裝:

    glance非系統光盤中自帶的程序,請使用epel提供的yum源自行進行安裝,若你不會使用yum,請在老衲的文章中挑選關於yum的學習。epel地址的請自行問度娘。

    2.監控界面的定義:

     先看下默認的glance的界面:

wKioL1Ut3GegSLJeAAczKxeQ0P4780.jpg


    要實施監控界面中監控對象的定義有2種方式:1.命令行定義 2.交換界面中快捷鍵定義。

  2.1)命令行中定義監控界面顯示的監控對象:

#glance [ -dmnr ]

   -d     Disable disk I/O module      不顯示磁盤I/O監控

   -m     Disable mount module         不顯示已掛載的磁盤分區使用情況
   -n     Disable network module       不顯示網卡流量監控

   -r     Disable process list (for low CPU consumption)  不現實進程監控

 

     2.2)交換界面中通過快捷鍵定義顯示的監控對象

#glance 開啓監控界面後按鍵盤上對應的快捷鍵,這些快捷鍵有:

     d      Show/hide disk I/O stats     開啓/關閉磁盤I/O監控信息
     f      Show/hide file system stats  開啓/關閉已掛載的磁盤分區使用情況   

     h      Show/hide the help screen    開啓/關閉幫助界面      
     n      Show/hide network stats      開啓/關閉網卡流量監控



    3 定義監控對象監控值的表現方式:

    3.1)命令行可用參數定義:

#glance [ -b,-t sec,-1]

    -b     Display network rate in Byte per second (default: bit per second)

           以字節/秒爲單位展示網絡網卡流量,默認單位:位/秒

    -t sec:Set refresh time in seconds (default: 3 sec)

            設定刷新數值間隔,默認每3秒刷新一次。

   -1:    Start Glances in per-CPU mode

           數字1,展示cpu情況時以每cpu位單位進行展示,而不是cpu彙總情況

     

      3.2)交換界面中通過快捷鍵定義

#glance 開啓監控界面後按鍵盤上對應的快捷鍵,這些快捷鍵有:

       a  Sort process list automatically  
       b  Switch between bit/s or Byte/s for network I/O

          在位/秒和字節/秒間爲單位間切換網卡I/O統計數據
       c  Sort processes by CPU usage

          以CPU佔用值爲依據對進程排序
       i  Sort processes by I/O rate

          以進程I/O值爲依據對進程排序

       m  Sort processes by MEM usage

          以內存使用量爲依據對進程進行排序
       p  Sort processes by name

          以進程名稱對進程進行排序
       t  View network I/O as combination

          顯示網卡I/O值時,以進出之和形式展示
       u  View cumulative network I/O

          顯示網卡I/O值時,以刷新間隔該值累加形式展示
       1  Switch between global CPU and per-CPU stats     

          展示cpu使用情況時,在每cpu和cpu使用匯總間切換


    4 定義監控數據的輸出

#glances   -f /path/to/file   -o {html|cvs}

        -f  /path/to/file:定義監控數據輸出文件

        -o {html|cvs}:指定輸出的格式

 

     5 以C/S模式運行glances

服務器模式:被監控的服務器使用

#glances -s [-B bind] [-p port]

客戶機模式:監控主機使用

#glances -c server  [-p port]


-B @IP|HOST   Bind server to the given IPv4/IPv6 address or hostname

                服務器模式下指定本地監聽的地址
-c @IP|HOST   Connect to a Glances server by IPv4/IPv6 address or hostname

                客戶機模式下指定接入的地址

-s            Run Glances in server mode

                運行於服務器模式

-p PORT       Define the client/server TCP port (default: 61209)
                指定端口,默認61209

wKiom1Ut7hyywcEgAAK5NYXidgw736.jpg

 wKioL1Ut8HeB5V1mAAGU378INmM941.jpg   


   工具三  dstat

   dstat是款強大的命令行系統數據收集展示工具,被設計用來替代:iostat,vmstat,ifstat。既可以在同一個界面中顯示cpu,內存,磁盤,網卡數據這些對象的信息,也可通過不同的參數,一次展示某個對象的信息,還可找出佔用對象最多的進程。

   先看下默認的dstat的界面:

wKiom1UuGv2QOFtRAAMTBenlYaE057.jpg


   配合參數分別顯示不同對象信息:

#dstat [option]

    1)顯示cpu彙總統計信息:

#dstat -c

從左至右依次爲:

     用戶空間進程佔用cpu週期時長百分比

     系統空間進程佔用cpu週期時長百分比

     cpu處於空閒狀態佔cpu週期時長百分比

     cpu處於等待狀態佔cpu週期時長百分比

     cpu發送硬件中斷佔用cpu週期時長百分比

     cpu發生軟中斷佔用cpu週期時長百分比

wKioL1UuHRbD6JUhAADYLvhRExc417.jpg

當有多顆cpu時,還可顯示指定cpu信息

#dstat -C cpu編號,cpu編號,。。

下圖中的例子展示的是cpu0 和 dstat默認對象的統計情況

wKiom1UuHdTBz5NBAAH0mXoC09Y229.jpg


    2)只顯示磁盤的read和write信息

#dstat -d

wKioL1UuIAaxRuiQAACdbQaCGUw097.jpg

    3)只顯示系統負載的

#dstat -l

wKiom1UuHwqgOyIPAACVChAphD0818.jpg

   4)只顯示內存page交換信息

#dstat -g

   5)只顯示cpu被中斷的信息

#dstat -i

   6)只顯示內存被使用的信息

#dstat -m

   7)只顯示網卡收發數據包的統計信息

#dstat -n

   8)只顯示進程相關的信息

#dstat -p

   9)只顯示i/o請求的速率

#dstat -r

   10)只顯示swap相關數據的

#dstat -s

    11)只顯示系統相關的數據,包括中斷和進程切換

#dstat -y

    配合參數找出各個top進程

    12)--top-cpu:顯示最佔用CPU的進程;

wKiom1UuIcjyQEBBAAC_VuusMDo483.jpg 

    13)--top-bio:顯示最消耗block io的進程;

wKiom1UuIgrhjCM_AAC2j_bmD8A175.jpg

    14)--top-io:最佔用io的進程;

wKiom1UuIjjiAHpkAADagKGQJcw862.jpg


    15)--top-mem:顯示最佔用內存的進程

wKioL1UuJGzR6OJgAADWb_-cpvw428.jpg


    其它可用選項:

--ipc:顯示用於進程間通信相關的速率數據

--raw:顯示raw套接字的相關數據

--tcp:顯示tcp套接字的相關數據

--udp:顯示udp套接字的相關數據

--unix:顯示inux sock接口相關統計數據

--socket:顯示上面所有的統計相關統計數據(total, tcp, udp, raw)

      更多的選項和插件功能,請參閱man幫助。

      相對htop和glances來說,dstat比較枯燥,但dstat是被收錄進系統光盤中程序,其重要性可見一斑,還是老老實實的記憶和使用吧!









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