在上一節我們介紹了一些常用進程管理命令用法,但在實際生產環境運用時,我們可能需要動態持
續的監控進程的運行狀態,此時我們就需要top,htop,iotop、glances等命令工具來實現。
本節索引:
一、top——進程監控工具
二、htop——top增強版進程監控工具
三、iotop、iostat——磁盤讀寫監控工具
四、vmstat——虛擬內存統計工具
五、glances——可跨平臺系統監控工具
六、dstat——多功能整合系統監控工具
一、top——進程監控工具
相對于ps而言,ps顯示的是某個時間點的進程狀態信息,top命令工具類似于windows系統的任務管理器,
可以動態的持續監控進程的運行狀態
每一行的代表的含義為:
第一行:
1.當前系統時間
2.系統已啟動的時間
3.當前登錄用戶數
4.系統平均負載(1min、5min、15min),超過1表示負載過高
第二行:
當前進程的總量,以及處于各種狀態的進程的數量,要注意最后的zombie,不為0
要及時查看哪個進程處于僵死狀態
第三行:CPU的整體負載,多核CPU可按1切換不同CPU的負載率
us:user space?????? 用戶運行程序占用CPU百分比
sy:system???? 用于運行內核占用CPU百分比
ni:nice用戶進程空間所改變過優先級的進程占用CPU百分比
id:idle?? 空閑CPU百分比
wa:wait to?? 等待I/O花費時間
hi:hardware interrupt 硬件中斷占用CPU的百分比
si:software interrupt 軟件中斷占用CPU的百分比
st:stolen?????? 被偷走的CPU百分比,一般為虛擬機占用
第四行:表示物理內存的使用情況
第五行:表示交換分區的使用情況
第六行:這里默認顯示空白,可以輸入指令,包括:
P?????? 以占據的CPU百分比大小排序
M???? 以內存占比大小排序
T?????? CPU累加占用時間排序
l??????? 是否顯示系統負載行
t?????? 是否顯示進程摘要信息及CPU負載狀態
1?????? 數字1,平均或單獨顯示各CPU負載信息
m???? 是否顯示內存相關狀態信息
q?????? 退出
s?????? 修改延遲時長
k?????? 終止指定進程
top輸出下面的部分:
PID?? 進程ID
USER??????? 進程所有者
PR??? 進程優先級,越小優先級越高
NI???? nice優先級,越小優先級越高
VIRT???????? 進程需要占用的內存大小
RES? 進程當前實際占用內存大小
SHR? 進程與其他進程恭喜的內存大小
S?????? 進程狀態
%CPU?????? CPU占有率
%MEM???? 內存使用率
TIME+????? 進行CPU使用時間累加
COMMAND 進程或命令名稱
二、htop——top增強版進程監控工具
htop是top命令工具的增強版,系統默認沒有按照,需epel源進行安裝
交互式命令:
u?????? 選擇顯示指定用戶的進程
l??????? 顯示光標所在進程縮打開的文件列表
s?????? 顯示光標所在進程執行的系統調用
a?????? 綁定進程到指定cpu(退出htop失效)
#?????? 快速定位光標至PID為#的進程上
htop支持的一些信息
-d #? 延遲時長
-u USERNAME:顯示指定用戶的進程
-s COLUMN:根據指定字段進行排序
三、iotop、iostat——磁盤讀寫監控工具
iotop命令是一個用來監視磁盤I/O使用狀況的top類工具iotop具有與top相似的UI,其
中包括PID、用戶、I/O、進程等相關信息,可查看每個進程是如何使用IO
每一行的代表的含義為:
第一行:Read和Write速率總計
第二行:實際的Read和Write速率
第三行:參數如下:
TID??????????????????? 線程ID(按p切換為進程ID)
PRIO????????????????????????? 優先級
USER???????????????????????? 用戶
DISK READ??????????????? 磁盤讀速率
DISK WRITE????????????? 磁盤寫速率
SWPIN?????????????????????? swap交換百分比
IO>??????????????????? IO等待所占的百分比
COMMAND?????????????????????? 線程/進程命令
交互按鍵
left和right方向鍵:改變排序
r:反向排序
o:切換至選項–only
p:切換至–processes選項
a:切換至–accumulated選項
q:退出
i:改變線程的優先級
iotop支持的選項:
-o, –only???????? 只顯示正在產生I/O的進程或線程,除了傳參,可以在運行過程中按o生效
-b, –batch??????????????? 非交互模式,一般用來記錄日志
-n NUM, –iter=NUM????? 設置監測的次數,默認無限。在非交互模式下很有用
-d SEC, –delay=SEC??????? 設置每次監測的間隔,默認1秒,接受非整形數據例如1.1
-p PID, –pid=PID???? 指定監測的進程/線程
-u USER, –user=USER??? 指定監測某個用戶產生的I/O
-P, –processes???????????????? 僅顯示進程,默認iotop顯示所有線程
-a, –accumulated?? 顯示累積的I/O,而不是帶寬
-k, –kilobytes????????? 使用kB單位,而不是對人友好的單位。在非交互模式下,腳本編程有用
-t, –time ??????????????? 加上時間戳,非交互非模式
-q, –quiet ?????????????? 禁止頭幾行,非交互模式,有三種指定方式
-q ??????????? 只在第一次監測時顯示列名
-qq ???????? 永遠不顯示列名
-qqq ??????????????? 永遠不顯示I/O匯總
iostat??????????????? 統計cpu和設備IO信息
第一段顯示:內核版本(主機名) 當前日期? 架構類型? 核心數
第二段顯示:cpu平均利用率
第三段顯示:磁盤讀寫速度(kb/s)
四、vmstat——虛擬內存統計工具
通過top、htop我們可以獲得一些進程對系統資源的使用情況,而vmstat則可以通過
內存、磁盤、網絡、CPU來動態顯示系統資源的使用情況。
格式:vmstat [options][delay [count]]
選項:
-s????????????? 顯示內存的統計數據
-d????????????? 顯示磁盤的統計數據
vmstat輸出含義:
procs:
r:可運行進程的個數,和核心數有關
b:處于不可終端睡眠狀態
memory:
swpd:交換內存的使用總量
free:空閑物理內存總量
buffer:用于buffer的內存總量
cache:用于cache的內存總量
swap:
si:從磁盤交換進內存的數據速率(kb/s)
so:從內存交換至磁盤的數據速率(kb/s)
io:
bi:從塊設備讀入數據到系統的速率(kb/s)
bo:保存數據至塊設備的速率(kb/s)
system:
in:interrupts 中斷速率,包括時鐘
cs:進程切換速率
cpu:
us:user space?????? 用戶運行程序占用CPU百分比
sy:system???? 用于運行內核占用CPU百分比
id:idle?? 空閑CPU百分比
wa:wait to?? 等待I/O花費時間
st:stolen?????? 被偷走的CPU百分比,一般為虛擬機占用
五、glances——可跨平臺系統監控工具
glances是一款系統監視工具,能夠監視CPU、負載、內存、磁盤I/O、網絡流量、文件
系統、系統溫度等信息。centos系統默認不安裝glances工具,需手動安裝(epel源)
glances可提供的監視和分析性能數據功能包括:
1.CPU使用率
2.內存使用情況
3.內核統計信息和運行隊列信息
4.磁盤I/O速度、傳輸和讀/寫比率
5.文件系統中的可用空間
6.磁盤適配器
7.網絡I/O速度、傳輸和讀/寫比率
8.頁面空間和頁面速度
9.消耗資源最多的進程
10.計算機信息和系統資源
常用選項:
-b: 以Byte為單位顯示網卡數據速率
-d: 關閉磁盤I/O模塊
-f: /path/to/somefile: 設定輸入文件位置
-o: {HTML|CSV}:輸出格式
-m: 禁用mount模塊
-n: 禁用網絡模塊
-t #: 延遲時間間隔
-1:? 每個CPU的相關數據單獨顯示
支持遠程模式,可在C/S模式下運行glances命令:
注:glances版本最好一樣
服務器模式:
glances -s -B IPADDR
IPADDR: 指明監聽的本機哪個地址
客戶端模式:
glances -c IPADDR
IPADDR:要連入的服務器端地址
六、dstat——多功能整合系統監控工具
dstat是一個多功能工具,他包含了vmstat,iostat,netstat這些命令的功能,并
增加了監控項,變得更加靈活。dstat可用于基準測試和排除故障。
默認情況下,dstat每秒刷新一次并顯示結果,可按ctrl+c退出
每一區列代表的含義:
total-cpu-usage?????????????? CPU使用率
dsk/total????????? 磁盤讀寫總數
net/total????????? 網絡設備發送和接收數據的總數
paging?????????????????????? 系統的分頁活動,大多數情況我們希望此處兩項為0
system????????????????????? 顯示中斷和上下文切換。只在有比較基線時才有意義。這一欄較高
的統計值通常表示大量進程造成擁塞
dstat支持的選項:
-c???? 顯示cpu性能指標相關統計數據
-d???? 顯示磁盤disk相關速率
-g???? 顯示page相關速率數據
-m??? 顯示內存memory相關統計數據
-n???? 顯示網絡network相關統計數據
-p???? 顯示進程process相關統計數據
-r????? 顯示io請求相關統計數據
-s????? 顯示swap的相關數據
長選項:
–top-cpu???????? 顯示最占用CPU的進程
–top-io?? 顯示最占用io的進程
–top-mem????? 顯示最占用內存的進程
–top-latency? 顯示延遲最大的進程
–tcp????????????????? 顯示tcp套接字相關數據
–udp???????????????? 顯示udp套接字相關數據
–unix??????????????? 顯示unix sock接口相關統計數據
–raw??????????????? 顯示raw套接的相關數據
–socket 顯示套接相關數據
–ipc???????? 顯示進程間通信相關的速率數據
本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/97529