在企業生產環境中,系統管理員通常要不定時的檢查服務器上各資源的使用狀況,如CPU使用率,負載,磁盤的讀寫速率,網絡傳輸狀況等等。因此,掌握一個進程管理工具的熟練使用,無疑對管理員的工作有事半功倍的效果。本文藉助CentOS6.6向讀者儘可能詳細講解top、htop、glances、以及dstat工具的使用方法和技巧。
A.top工具
top是CentOS系統自帶的一款動態顯示系統資源使用狀況的進程管理工具,類似於windows下的任務管理器,其支持交互式命令以及定製顯示內容。在命令行鍵入top後顯示內容如下:
其各字段表達的含義爲;
其中load average(平均負載)表示當前cpu上等待運行的進程隊列的隊列長度,如長度爲1表示1個進程,其三個值分別表示過去1分鐘、5分鐘、15分鐘進程隊列的平均長度。其值越大表示當前cpu的負載越高
常用選項:
top -d# 指定刷新時間間隔,如:20秒刷新一次 top -d20
top -b以批次方式顯示而非實時顯示
top -b -n#:指定顯示的批次,如:20秒刷新一次,顯示3個批次 top -d20 -b -n3
常用交互式命令:
P以cpu百分比排序顯示;
M以內存佔用量排序顯示;
T以cpu時間片累計佔用時間排序顯示;
l是否顯示top一行的信息;
t是否顯示進程及cpu兩行的相關信息
1是否單獨顯示每顆cpu的使用率
s修改刷新時間間隔,單位爲秒
k殺死指定進程
B.htop工具
htop是top工具的增強版,提供了一個更美觀的界面給管理員查看,支持交互命令且支持鼠標選定,由紅帽公司收錄在Fedora 社區提供的高質量軟件源EPEL內,因此使用前需要yum 安裝。安裝完成後,在命令行鍵入htop顯示如下內容:
常用交互式命令有;
F1獲取幫助
u僅顯示指定用戶的進程
s跟蹤選定進程發起的系統調用,以跟蹤NetworkManager爲例,先選中NetWorkManager進程-->鍵入s進入跟蹤進程的界面,等待片刻之後,便會出現跟蹤的結果-->按ESC鍵結束跟蹤
l跟蹤選定進程運行時打開的文件,以跟蹤NetworkManager爲例,先選中NetWorkManager進程-->鍵入l進入跟蹤進程的界面,按F5刷新-->按ESC鍵結束跟蹤
t以進程樹的形式顯示
a設定cpu的親緣性(將選定的進程綁定到某顆cpu上)先選中某進程-->鍵入a,進行CPU的選擇
C.glances
glances是一個由Python語言開發的一款更爲強大的系統資源監控工具,能夠監視 CPU、負載、內存、磁盤 I/O、網絡流量、文件系統、系統溫度等信息。支持交互式命令,且具有C/S特性。使用前需要yum安裝。在命令行鍵入glances顯示如下:
鍵入h,可查看其交互式命令的使用幫助,再次鍵入h,返回監控界面
常用選項
-b: 以Byte爲單位顯示網卡數據速率;
-d: 關閉磁盤I/O模塊
-f /path/to/somewhere: 設置輸出html或csv文件的位置;注:可能需yum安裝python-jinja2模塊;且必須先使用 -o 指定格式再指定輸出位置
-o {HTML|CSV}設置文件的輸出格式,可以使用html查看,通常與-f一起使用將html文件傳輸至/var/www/html/下,就可以使用網頁查看了
-m: 禁用mount模塊
-n: 禁用網絡模塊
-t #: 指定刷新時間間隔
-1:每個CPU的數據單獨顯示
以網頁查看glances結果爲例,首先安裝nginx模塊(rpm或yum安裝均可)-->啓動nginx服務-->glances -o HTML -f /usr/share/nginx/html/(此爲yum安裝nginx後,nginx的默認工作目錄)
在外部瀏覽器打開相應的地址即可
glaces還支持C/S模式。在生產環境中,可以使用glances -s -B 服務器IP,在linux服務器上以服務模式啓動,然後就可以在客戶機上使用glances -c 服務器IP,監控遠程服務器的系統資源使用情況。
例如:服務器的IP爲:172.16.24.1。在服務器上執行:glances -s -B 172.16.24.1,在客戶機上執行:glances -c 172.16.24.1可查看服務器的資源使用狀態。(實際生產環境中,我們通常在服務器上將glances -s -B IP工作於後臺作業中:nohubglances -s -B 172.16.24.1 &)
D.dstat
dstat是一款比glances還要強大的系統監控工具,在生產環境中應用的更爲廣泛。它也需事先安裝,安裝完成後,在命令行鍵入dstat
其中:total-cpu-usage表示cpu的使用率統計;-dsk/total表示磁盤讀寫速率;net/total表示網絡傳輸速率;paging表示內存頁換進換出情況;system表示中斷以及上下文切換(進程切換)
常用選項:
# #:第一個#表示刷新時間間隔,第二個表示要顯示的批次
-c:僅統計cpu的使用狀況
-d:僅顯示磁盤相關的使用情況
-g:僅顯示內存頁面換進換出的狀況
-n:僅顯示網絡傳輸的狀況
--io:僅顯示IO設備的讀寫速率狀況
--top-cpu:顯示最佔cpu的進程
--top-io:最佔用io設備的進程
--top-mem:最佔用內存的進程