友情提醒:文件涉及到的實驗平臺爲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.界面說明
A區域使用彩色柱狀結構分別顯示CPU,Memory和Swap的使用情況。在同一個項目內不同的顏色柱表示不同的內容,各色柱體的多少分別表示佔用的百分比。顏色對比見下圖。
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鍵就可呼出幫助信息
F2:只需在htop界面中按F2就可進入定製個性話htop界面,包括顯示色彩,顯示項目內容等。
左側setup是可定製的項目,右側爲項目中的內容。
使用上下左右方向鍵可以選擇,定製完後按F10退出定製界面。
F3:只需在htop界面中按F3就可進入搜索界面,輸入要搜索的關鍵字,即可在C區域中定位包含關鍵字的進程條目,被選中的條目會變色。ESC按鍵退出到正常htop界面。
在這個例子中看到,輸入關鍵字vim,那麼包好vim關鍵字的進程條目自動被選中並變色顯示。
F4:只需在htop界面中按F4就可進入定製過濾界面,輸入關鍵字,htop爲依照輸入的關鍵字,在C區域中顯示包含關鍵字的進程條目。ESC*2次或者回車鍵退出該界面。
F5:只需在htop界面中按F5,可實現在C區域中以樹狀形式顯示進程間的關係。
F6:在C區域中進程顯示時,默認按照CPU%列的值爲標準進行排序的,想改變這種排序方式,定義一個新的參考列值,只需在htop界面中按F6進入。左側爲排序標準,上下方向鍵選擇,選中後按enter鍵即可。
F7:調小進程nice值的,這個只有root用戶可用,建議配合F4一起使用。
先使用F4功能選出要調值的進程
按Enter鍵,按F7給選中的進程調小nice值,按一次F7 該進程nice值減小1,比較下圖和上圖nice值的差別
F8:調大進程的nice值的,這個同F7使用類似,只是不限制用戶身份,當然“自家的孩子自己可以打,打別人家的。。。除了你是root”
F9:向進程傳遞Single信號的,建議同F4過濾一起使用。
先使用F4的功能選出實施動作的進程
按Enter鍵,再按F9進入信號選擇界面,左側爲信號,按上下方向鍵選擇。選擇後按Enter間發送信號,按ESC鍵取消發送。
再觀察被髮送15 SIGTERM信號後 vim進程的變化,顯示vim進程被正常解釋。
這就是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的界面:
要實施監控界面中監控對象的定義有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
工具三 dstat
dstat是款強大的命令行系統數據收集展示工具,被設計用來替代:iostat,vmstat,ifstat。既可以在同一個界面中顯示cpu,內存,磁盤,網卡數據這些對象的信息,也可通過不同的參數,一次展示某個對象的信息,還可找出佔用對象最多的進程。
先看下默認的dstat的界面:
配合參數分別顯示不同對象信息:
#dstat [option]
1)顯示cpu彙總統計信息:
#dstat -c
從左至右依次爲:
用戶空間進程佔用cpu週期時長百分比
系統空間進程佔用cpu週期時長百分比
cpu處於空閒狀態佔cpu週期時長百分比
cpu處於等待狀態佔cpu週期時長百分比
cpu發送硬件中斷佔用cpu週期時長百分比
cpu發生軟中斷佔用cpu週期時長百分比
當有多顆cpu時,還可顯示指定cpu信息
#dstat -C cpu編號,cpu編號,。。
下圖中的例子展示的是cpu0 和 dstat默認對象的統計情況
2)只顯示磁盤的read和write信息
#dstat -d
3)只顯示系統負載的
#dstat -l
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的進程;
13)--top-bio:顯示最消耗block io的進程;
14)--top-io:最佔用io的進程;
15)--top-mem:顯示最佔用內存的進程
其它可用選項:
--ipc:顯示用於進程間通信相關的速率數據
--raw:顯示raw套接字的相關數據
--tcp:顯示tcp套接字的相關數據
--udp:顯示udp套接字的相關數據
--unix:顯示inux sock接口相關統計數據
--socket:顯示上面所有的統計相關統計數據(total, tcp, udp, raw)
更多的選項和插件功能,請參閱man幫助。
相對htop和glances來說,dstat比較枯燥,但dstat是被收錄進系統光盤中程序,其重要性可見一斑,還是老老實實的記憶和使用吧!