您好,登錄后才能下訂單哦!
Linux一體化性能監測工具collectl怎么用,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
對Linux系統管理員來說,最重要的任務莫過于確保他或她管理的系統處于非常良好的情況。Linux系統管理員可以使用好多工具,幫助監測和顯示系統里面的進程,比如top和htop,但這些工具沒有一個比得上collectl。
collectl:Linux性能監測工具
collectl是一款非常棒的、功能豐富的命令實用工具,它可以用來收集描述系統當前狀況的性能數據。不像大多數其他的監測工具,collectl并不著眼于數量有限的系統衡量指標,而是可以收集關于許多不同類型的系統資源的信息,比如處理器、磁盤、內存、網絡、套接字、TCP、索引節點、Infiniband、Lustre、NFS、進程、quadric、slab和伙伴系統信息等資源。
使用collectl的一個非常好的方面是,它還能扮演像top、ps和iotop另外許多這些只針對某個特定用途設計的實用工具的角色。那么,哪些功能特性讓colleclt成為一款實用工具呢?
我在進行了大量的研究后,整理出了一份清單,為大家列出了collectl命令行實用工具的一些最重要的功能特性。
collectl的功能特性
?它能夠以交互式運行、作為守護程序運行,或者兩者兼而有之。
?它能夠顯示采用多種格式的輸出結果。
?它能夠監測幾乎任何一個子系統。
?它能扮演像ps、top、iotop或vmstat這些另外許多實用工具的角色。
?它能夠記錄并回放捕獲的數據。
?它能夠以眾多文件格式導出數據。(如果你想借助外部工具來分析數據,這項功能就非常有用)。
?它能夠作為一項服務來運行,以監測遠程機器或整個服務器集群。
?它能夠在終端中顯示數據,并將數據寫入到文件或套接字。
如何在Linux中安裝collectl?
collectl實用工具可以在所有Linux發行版上運行,它只需要perl就能運行,所以確保你在機器中安裝collectl之前已在機器中安裝了Perl。
在Debian/Ubuntu/Linux Mint上
下面這個命令可用于將collectl實用工具安裝在基于Debian的機器上,比如Ubuntu。
$ sudo apt-get install collectl
在RHEL/CentOS/Fedora上
如果你使用基于紅帽的發行版,很容易借助yum命令,從軟件庫獲取它。
# yum install collectl
collectl實用工具的一些實際例子
一旦collectl工具安裝完畢,你很容易從終端來運行它,甚至不帶任何選項。下面這個命令將以一種非常簡短而易于閱讀的格式,顯示關于處理器、磁盤和網絡統計數字等的信息。
# collectl waiting for 1 second sample... # #cpu sys inter ctxsw KBRead Reads KBWrit Writes KBIn PktIn KBOut PktOut 13 5 790 1322 0 0 92 7 4 13 0 5 10 2 719 1186 0 0 0 0 3 9 0 4 12 0 753 1188 0 0 52 3 2 5 0 6 13 2 733 1063 0 0 0 0 1 1 0 1 25 2 834 1375 0 0 0 0 1 1 0 1 28 2 870 1424 0 0 36 7 1 1 0 1 19 3 949 2271 0 0 44 3 1 1 0 1 17 2 809 1384 0 0 0 0 1 6 0 6 16 2 732 1348 0 0 0 0 1 1 0 1 22 4 993 1615 0 0 56 3 1 2 0 3
大家可以從終端屏幕中顯示的上述輸出結果中看到,處理命令輸出中的系統衡量標準值非常容易,因為它就顯示在單單一行上。
collectl實用工具不帶任何選項執行后,它顯示了關于下列子系統的信息:
?處理器
?磁盤
?網絡
注意:在我們這個例子中,子系統是指可以測量的每一種系統資源。
你還可以顯示除slab之外的所有子系統的統計數字,只要結合該命令和–all選項,如下所示。
# collectl --all waiting for 1 second sample... # #cpu sys inter ctxsw Cpu0 Cpu1 Free Buff Cach Inac Slab Map Fragments KBRead Reads KBWrit Writes KBIn PktIn KBOut PktOut IP Tcp Udp Icmp Tcp Udp Raw Frag Handle Inodes Reads Writes Meta Comm 16 3 817 1542 430 390 1G 175M 1G 683M 193M 1G nsslkjjebbk 0 0 24 3 1 1 0 1 0 0 0 0 623 0 0 0 8160 240829 0 0 0 0 11 1 745 1324 316 426 1G 175M 1G 683M 193M 1G nsslkjjebbk 0 0 0 0 0 3 0 2 0 0 0 0 622 0 0 0 8160 240828 0 0 0 0 15 2 793 1683 371 424 1G 175M 1G 683M 193M 1G ssslkjjebbk 0 0 0 0 1 1 0 1 0 0 0 0 622 0 0 0 8160 240829 0 0 0 0 16 2 872 1875 427 446 1G 175M 1G 683M 193M 1G ssslkjjebbk 0 0 24 3 1 1 0 1 0 0 0 0 622 0 0 0 8160 240828 0 0 0 0 24 2 842 1383 473 368 1G 175M 1G 683M 193M 1G ssslkjjebbk 0 0 168 6 1 1 0 1 0 0 0 0 622 0 0 0 8160 240828 0 0 0 0 27 3 844 1099 478 365 1G 175M 1G 683M 193M 1G nsslkjjebbk 0 0 0 0 1 6 1 9 0 0 0 0 622 0 0 0 8160 240828 0 0 0 0 26 5 823 1238 396 428 1G 175M 1G 683M 193M 1G ssslkjjebbk 0 0 0 0 2 11 3 9 0 0 0 0 622 0 0 0 8160 240828 0 0 0 0 15 1 753 1276 361 391 1G 175M 1G 683M 193M 1G ssslkjjebbk 0 0 40 3 1 2 0 3 0 0 0 0 623 0 0 0 8160 240829 0 0 0 0
但是,你如何借助該實用工具監測處理器的使用情況?“-s”選項可用于控制收集或回放哪些子系統數據。
比如說,下面這個命令可用于監測處理器使用情況的摘要。
# collectl -sc waiting for 1 second sample... # #cpu sys inter ctxsw 15 2 749 1155 16 3 772 1445 14 2 793 1247 27 4 887 1292 24 1 796 1258 16 1 743 1113 15 1 743 1179 14 1 706 1078 15 1 764 1268
如果你結合命令和“scdn”,會出現什么情況?想學習如何使用命令行工具,***的辦法就是盡可能實際運用一下,所以在你的終端中運行下面這個命令,看看會出現什么情況。
# collectl -scdn waiting for 1 second sample... # #cpu sys inter ctxsw KBRead Reads KBWrit Writes KBIn PktIn KBOut PktOut 25 4 943 3333 0 0 0 0 1 1 0 2 27 3 825 2910 0 0 0 0 1 1 0 1 27 5 886 2531 0 0 0 0 0 0 0 1 20 4 872 2406 0 0 0 0 1 1 0 1 26 1 854 2091 0 0 20 2 1 1 0 1 39 4 1004 3398 0 0 0 0 2 8 3 6 41 6 955 2464 0 0 40 3 1 2 0 3 25 7 890 1609 0 0 0 0 1 1 0 1 16 2 814 1165 0 0 796 43 2 2 0 2 14 1 779 1383 0 0 48 6 1 1 0 1 11 2 795 1285 0 0 0 0 2 14 1 14
你很容易明白:默認選項是“cdn”,它代表處理器、磁盤和網絡數據。命令的結果與“collectl -scn”的輸出結果一樣。
如果你想收集關于內存的數據,使用下面這個命令。
# collectl -sm waiting for 1 second sample... # #Free Buff Cach Inac Slab Map 1G 177M 1G 684M 193M 1G 1G 177M 1G 684M 193M 1G 1G 177M 1G 684M 193M 1G 1G 177M 1G 684M 193M 1G 1G 177M 1G 684M 193M 1G 1G 177M 1G 684M 193M 1G 1G 177M 1G 684M 193M 1G 1G 177M 1G 684M 193M 1G
如果你想獲得關于內存使用情況、閑置內存以及對系統性能而言很重要的其他方面的一些詳細信息,上述輸出結果非常有用。
想獲得關于tcp的一些數據?使用下面這個命令即可實現。
# collectl -st waiting for 1 second sample... # # IP Tcp Udp Icmp 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
你有了一定的經驗后,就很容易結合諸多選項,獲得所需要的結果。比如說,你可以結合代表tcp的“t”和代表處理器的“c”。下面這個命令就實現了這項功能。
# collectl -stc waiting for 1 second sample... # #cpu sys inter ctxsw IP Tcp Udp Icmp 23 8 961 3136 0 0 0 0 24 5 916 3662 0 0 0 0 21 8 848 2408 0 0 0 0 30 10 916 2674 0 0 0 0 38 3 826 1752 0 0 0 0 31 3 820 1408 0 0 0 0 15 5 781 1335 0 0 0 0 17 3 802 1314 0 0 0 0 17 3 755 1218 0 0 0 0 14 2 788 1321 0 0 0 0
我們人類很難記住所有的可用選項,于是我列出了該工具支持的子系統摘要列表。
?b – 伙伴系統信息(內存片段)
?c – 處理器
?d – 磁盤
?f – NFS V3數據
?i – 索引節點和文件系統
?j – 中斷
?l – Lustre
?m – 內存
?n – 網絡
?s – 套接字
?t – TCP
?x – 互連
?y – slabs(系統對象緩存)
對Linux用戶的系統管理員來說,一個非常重要的數據就是磁盤使用情況方面所收集的數據。下面這個命令將幫助你監測磁盤的使用情況。
# collectl -sd waiting for 1 second sample... # #KBRead Reads KBWrit Writes 0 0 0 0 0 0 0 0 0 0 92 7 0 0 0 0 0 0 36 3 0 0 0 0 0 0 0 0 0 0 100 7 0 0 0 0
你還可以使用“-sD”選項,收集關于單個磁盤的數據,但是你要知道關于全部磁盤的數據不會報告。
# collectl -sD waiting for 1 second sample... # DISK STATISTICS (/sec) # Pct #Name KBytes Merged IOs Size Kbytes Merged IOs Size RWSize QLen Wait SvcTim Util sda 0 0 0 0 52 11 2 26 26 1 8 8 1 sda 0 0 0 0 0 0 0 0 0 0 0 0 0 sda 0 0 0 0 24 0 2 12 12 0 0 0 0 sda 0 0 0 0 152 0 4 38 38 0 0 0 0 sda 0 0 0 0 192 45 3 64 64 1 20 20 5 sda 0 0 0 0 204 0 2 102 102 0 0 0 0 sda 0 0 0 0 0 0 0 0 0 0 0 0 0 sda 0 0 0 0 116 26 3 39 38 1 16 16 4 sda 0 0 0 0 0 0 0 0 0 0 0 0 0 sda 0 0 0 0 0 0 0 0 0 0 0 0 0 sda 0 0 0 0 32 5 3 11 10 1 16 16 4 sda 0 0 0 0 0 0 0 0 0 0 0 0 0
你還可以使用其他的具體子系統來收集詳細數據。下面列出了各個具體子系統。
?C – 處理器
?D – 磁盤
?E – 環境數據(風扇、電源和溫度),通過ipmitool
?F – NFS數據
?J – 中斷
?L – Lustre OST的細節,或者客戶端文件系統的細節
?N – 網絡
?T – 只有plot格式才有的65個TCP計數器
?X – 互連
?Y – Slabs(系統對象緩存)
?Z – 進程
collectl實用工具有許多可用選項,而僅僅一篇文章沒有足夠的時間和篇幅來逐一細述。不過,有必要了解如何將該實用工具作為top和ps來使用。
很容易讓collectl作為top實用工具來使用,只要在你的終端中運行下面這個命令,你會看到top工具在Linux系統中執行時提供的類似輸出結果。
# collectl --top # TOP PROCESSES sorted by time (counters are /sec) 13:11:02 # PID User PR PPID THRD S VSZ RSS CP SysT UsrT Pct AccuTime RKB WKB MajF MinF Command ^COuch!tecmint 20 1 40 R 1G 626M 0 0.01 0.14 15 28:48.24 0 0 0 109 /usr/lib/firefox/firefox 3403 tecmint 20 1 40 R 1G 626M 1 0.00 0.20 20 28:48.44 0 0 0 600 /usr/lib/firefox/firefox 5851 tecmint 20 4666 0 R 17M 13M 0 0.02 0.06 8 00:01.28 0 0 0 0 /usr/bin/perl 1682 root 20 1666 2 R 211M 55M 1 0.02 0.01 3 03:10.24 0 0 0 95 /usr/bin/X 3454 tecmint 20 3403 8 S 216M 45M 1 0.01 0.02 3 01:23.32 0 0 0 0 /usr/lib/firefox/plugin-container 4658 tecmint 20 4657 3 S 207M 17M 1 0.00 0.02 2 00:08.23 0 0 0 142 gnome-terminal 2890 tecmint 20 2571 3 S 340M 68M 0 0.00 0.01 1 01:19.95 0 0 0 0 compiz 3521 tecmint 20 1 24 S 710M 148M 1 0.01 0.00 1 01:47.84 0 0 0 0 skype 1 root 20 0 0 S 3M 2M 0 0.00 0.00 0 00:02.57 0 0 0 0 /sbin/init 2 root 20 0 0 S 0 0 1 0.00 0.00 0 00:00.00 0 0 0 0 kthreadd 3 root 20 2 0 S 0 0 0 0.00 0.00 0 00:00.60 0 0 0 0 ksoftirqd/0 5 root 0 2 0 S 0 0 0 0.00 0.00 0 00:00.00 0 0 0 0 kworker/0:0H 7 root 0 2 0 S 0 0 0 0.00 0.00 0 00:00.00 0 0 0 0 kworker/u:0H 8 root RT 2 0 S 0 0 0 0.00 0.00 0 00:04.42 0 0 0 0 migration/0 9 root 20 2 0 S 0 0 0 0.00 0.00 0 00:00.00 0 0 0 0 rcu_bh 10 root 20 2 0 R 0 0 0 0.00 0.00 0 00:02.22 0 0 0 0 rcu_sched 11 root RT 2 0 S 0 0 0 0.00 0.00 0 00:00.05 0 0 0 0 watchdog/0 12 root RT 2 0 S 0 0 1 0.00 0.00 0 00:00.07 0 0 0 0 watchdog/1 13 root 20 2 0 S 0 0 1 0.00 0.00 0 00:00.73 0 0 0 0 ksoftirqd/1 14 root RT 2 0 S 0 0 1 0.00 0.00 0 00:01.96 0 0 0 0 migration/1 16 root 0 2 0 S 0 0 1 0.00 0.00 0 00:00.00 0 0 0 0 kworker/1:0H 17 root 0 2 0 S 0 0 1 0.00 0.00 0 00:00.00 0 0 0 0 cpuset
現在***但并非最不重要的是,想把collectl實用工具用作ps工具,在你的終端中運行下面這個命令。你會獲得關于系統中進程的信息,就跟你在終端中運行“ps”命令所得到的輸出一樣。
# collectl -c1 -sZ -i:1 waiting for 1 second sample... ### RECORD 1 >>> tecmint-vgn-z13gn <<< (1397979716.001) (Sun Apr 20 13:11:56 2014) ### # PROCESS SUMMARY (counters are /sec) # PID User PR PPID THRD S VSZ RSS CP SysT UsrT Pct AccuTime RKB WKB MajF MinF Command 1 root 20 0 0 S 3M 2M 0 0.00 0.00 0 00:02.57 0 0 0 0 /sbin/init 2 root 20 0 0 S 0 0 1 0.00 0.00 0 00:00.00 0 0 0 0 kthreadd 3 root 20 2 0 S 0 0 0 0.00 0.00 0 00:00.60 0 0 0 0 ksoftirqd/0 5 root 0 2 0 S 0 0 0 0.00 0.00 0 00:00.00 0 0 0 0 kworker/0:0H 7 root 0 2 0 S 0 0 0 0.00 0.00 0 00:00.00 0 0 0 0 kworker/u:0H 8 root RT 2 0 S 0 0 0 0.00 0.00 0 00:04.42 0 0 0 0 migration/0 9 root 20 2 0 S 0 0 0 0.00 0.00 0 00:00.00 0 0 0 0 rcu_bh 10 root 20 2 0 S 0 0 0 0.00 0.00 0 00:02.24 0 0 0 0 rcu_sched 11 root RT 2 0 S 0 0 0 0.00 0.00 0 00:00.05 0 0 0 0 watchdog/0 12 root RT 2 0 S 0 0 1 0.00 0.00 0 00:00.07 0 0 0 0 watchdog/1 13 root 20 2 0 S 0 0 1 0.00 0.00 0 00:00.73 0 0 0 0 ksoftirqd/1 14 root RT 2 0 S 0 0 1 0.00 0.00 0 00:01.96 0 0 0 0 migration/1 16 root 0 2 0 S 0 0 1 0.00 0.00 0 00:00.00 0 0 0 0 kworker/1:0H 17 root 0 2 0 S 0 0 1 0.00 0.00 0 00:00.00 0 0 0 0 cpuset 18 root 0 2 0 S 0 0 1 0.00 0.00 0 00:00.00 0 0 0 0 khelper 19 root 20 2 0 S 0 0 0 0.00 0.00 0 00:00.00 0 0 0 0 kdevtmpfs 20 root 0 2 0 S 0 0 0 0.00 0.00 0 00:00.00 0 0 0 0 netns 21 root 20 2 0 S 0 0 0 0.00 0.00 0 00:00.00 0 0 0 0 bdi-default 22 root 0 2 0 S 0 0 0 0.00 0.00 0 00:00.00 0 0 0 0 kintegrityd
我非常確信,許多Linux系統管理員會喜歡這款工具,如果最充分地使用它,就會領略其強大的功能。如果你想進一步了解collectl,可以參閱參考手冊頁,并且不斷實際運用一下。
只要在終端中鍵入下面這個命令,就可以開始閱讀參考手冊頁了。
# man collectl
看完上述內容,你們掌握Linux一體化性能監測工具collectl怎么用的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。