作為Linux系統監控工具,Collectl是款值得推薦的軟件,使用Collectl能夠及時掌握系統的運行狀況,還能像iotop命令一樣使用collectl進行智能統計,下面小編就給大家介紹下Collectl的安裝及使用。
系統資源監控
Collectl作為一個輕量級的監控工具,在同類工具中是功能最全的。用戶可監測不同的復雜系統矩陣值,並可保留數據以做之後的分析。不同於其他只用來監測特定系統參數的工具,Collectl可以同時監測不同的變量,並以合適的方式記錄它們。
不同於或聚焦於一小組統計數據、采用唯一輸出方式,或采用迭代、作為守護進程運行的大部分監測工具,collectl可以同時全部實現。用戶可選擇各種子系統中的任一系統來監測包括內存,CPU,磁盤,索引節點,無線帶寬,lustre,內存,網絡,網絡文件系統,進程,二次型,slabs,套接口及TCP等信息。
深入學習前讓我們先看以下命令。
$ collectl
waiting for1 second sample.。。
#《--------CPU--------》《----------Disks-----------》《----------Network----------》
#cpu sys inter ctxsw KBRead Reads KBWrit Writes KBIn PktIn KBOut PktOut
00864177200000100
521338273400820001
1012222647009230201
107631722008030102
CPU使用率,磁盤輸入輸出和網絡活動以每秒為單位來加載。對可以理解這些數據的人來說這些信息很容易讀懂。這項列表在給定的時間間隔裡會持續增加,並可直接形成一項文件跟蹤日志。collectl工具提供了各種命令來對這些數據進行記錄,查找及做其他處理。
安裝collectl工具
對Ubuntu/Debian用戶來說Collectl是默認資源,所以使用apt命令便可獲取。
$ sudo apt-get install collectl
Fedora/CentOS用戶使用yum命令便可獲取。
$ yum install collectl
使用
必要的了解 - Collectl子系統
子系統是可檢測到的不同系統資源類型。像CPU,內存,帶寬等等都可構成一個子系統。只運行collectl命令將以批處理模式輸出CPU,磁盤和網絡子系統信息,我們在上文已看到相關內容。
從操作說明可以看到,Collectl可以識別以下子系統。
總計子系統
b - buddy info (內存片段)
c - CPU
d -Disk
f - NFS V3 Data
i -InodeandFileSystem
j -Interrupts
l -Lustre
m -Memory
n -Networks
s -Sockets
t - TCP
x -Interconnect
y -Slabs(system object caches)
細節子系統
這是一系列的詳細信息,大部分情況下都會由相應的總計數據衍生出來。目前“環境變量”和“進程”2類沒有相應的總計數據。如果有3個磁盤,選擇-sd,將只會看到3個磁盤組合出的單一信息。如果選擇-sD,將會分別顯示各磁盤信息。
C - CPU
D -Disk
E -Environmental data (fan, power, temp), via ipmitool
F - NFS Data
J -Interrupts
L -Lustre OST detail OR client Filesystem detail
M -Memory node data, which is also known as numa data
N -Networks
T -65 TCP counters only available in plot format
X -Interconnect
Y -Slabs(system object caches)
Z -Processes
使用“-s”來監測特定的子系統並向其添加子系統的識別項。現在讓我們舉幾個例子。
1. 監測cpu使用率
用“-sc”實現CPU總使用率的監測
$ collectl -sc
waiting for1 second sample.。。
#《--------CPU--------》
#cpu sys inter ctxsw
3018003729
3017673599
使用“-C”觀察各個單獨的CPU使用情況。結果將會輸出多行,分別對應一個CPU。
$ collectl -sC
waiting for1 second sample.。。
# SINGLE CPU STATISTICS
# Cpu User Nice Sys Wait IRQ Soft Steal Idle
0300000096
1300000096
2200000097
3100000098
0200000097
1202000095
2100000098
3401000095
如果需要,可以同時使用C和c來獲取單項CPU監測數據和匯總數據。
2. 內存監測
使用m子系統查看內存。
$ collectl -sm
waiting for1 second sample.。。
#《-----------Memory-----------》
#Free Buff Cach Inac Slab Map
2G220M1G1G210M3G
2G220M1G1G210M3G
2G220M1G1G210M3G
不難解釋。 M用來查看更多內存的詳細信息。
$ collectl -sM
waiting for1 second sample.。。
# MEMORY STATISTICS
# Node Total Used Free Slab Mapped Anon Locked Inact Hit%
07975M5939M2036M215720K372184K06652K1434M0
07975M5939M2036M215720K372072K06652K1433M0
3. 查看磁盤使用情況
d和D可以查看磁盤使用的概況和詳細情況。
$ collectl -sd
waiting for1 second sample.。。
#《----------Disks-----------》
#KBRead Reads KBWrit Writes
4113624
008013
$ collectl -sD
waiting for1 second sample.。。
# DISK STATISTICS (/sec)
# 《---------reads---------》《---------writes---------》《--------averages--------》 Pct
#Name KBytes Merged IOs Size KBytes Merged IOs Size RWSize QLen Wait SvcTim Util
sda 0000000000000
sda 0000000000000
sda 10211715322621
sda 0000921151818112125
“--verbose”命令可以用來查看附加信息。和D命令不同,它將概況擴展,包含了更多信息。
$ collectl -sd --verbose
上一頁12下一頁共2頁
4. 同時報告多系統情況
如果想要同時得到CPU,內存和磁盤報告,那麼同時使用子命令組合來實現。
$ collectl -scmd
waiting for1 second sample.。。
#《--------CPU--------》《-----------Memory-----------》《----------Disks-----------》
#cpu sys inter ctxsw Free Buff Cach Inac Slab Map KBRead Reads KBWrit Writes
40218743341G221M1G1G210M3G0000
30189640651G221M1G1G210M3G00205
5. 顯示統計時間
若要將每行的監測信息和時間一同顯示,使用T選項。通過在“-o”參數來指定。
$ collectl -scmd -oT
waiting for1 second sample.。。
# 《--------CPU--------》《-----------Memory-----------》《----------Disks-----------》
#Time cpu sys inter ctxsw Free Buff Cach Inac Slab Map KBRead Reads KBWrit Writes
12:03:0530196140131G225M1G1G212M3G0000
12:03:0630188438101G225M1G1G212M3G0000
12:03:0730201140601G225M1G1G212M3G0000
使用“-oTm”可將時間換成毫秒顯示。
6. 改變樣本計數
collectl報告的每行都是一份快照或樣本,它通常設定定期間隔如1秒來取樣。i可用來設置時間間隔,c用來設置樣本計數。
$ collectl -c1 -sm
waiting for1 second sample.。。
#《-----------Memory-----------》
#Free Buff Cach Inac Slab Map
1G261M1G1G228M3G
使用i命令可改變更新時間間隔。
$ collectl -sm -i2
waiting for2 second sample.。。
#《-----------Memory-----------》
#Free Buff Cach Inac Slab Map
1G261M1G1G229M3G