歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Collectl: 全能Linux 性能監控工具

Collectl: 全能Linux 性能監控工具

日期:2017/2/28 14:31:04   编辑:Linux教程

對於一個 Linux 系統管理員來說確保自己管理的系統處於一個良好的狀態是其首要責任。Linux 系統管理員可以找到有很多工具來幫助自己監控和顯示系統中的進程,例如 top 和 htop ,但是這些工具都不能與 collectl 相媲美。

在 Linux/UNIX 終端下使用 nload 實時監控網絡流量和帶寬使用 http://www.linuxidc.com/Linux/2014-04/100374.htm

Linux 系統實時監控的瑞士軍刀 —— Glances http://www.linuxidc.com/Linux/2014-04/99265.htm

Linux性能優化和監控系列(一)——top工具 http://www.linuxidc.com/Linux/2014-03/98973.htm

Linux流量監控工具 – iftop http://www.linuxidc.com/Linux/2013-08/89102.htm

collectl是一款非常優秀並且有著豐富的命令行功能的實用程序,你可以用它來采集描述當前系統狀態的性能數據。不同於大多數其它的系統監控工具,collectl 並非僅局限於有限的系統度量,相反,它可以收集許多不同類型系統資源的相關信息,如 cpu 、disk、memory 、network 、sockets 、 tcp 、inodes 、infiniband 、 lustre 、memory、nfs、processes、quadrics、slabs和buddyinfo等。

使用 collectl 的另一個好處就是它可以替代那些特定用途的工具如: top、ps、iotop 等等其它工具。那麼 collectl 有什麼特性而使其成為一個有用的工具呢?

經過許多研究後,我總結了 collectl 的命令行功能的一些非常重要的特性。

Collectl 特性

  • 可以交互式地運行或作為一個守護進程,或同時二者兼備地運行。

  • 可以以多種格式顯示輸出。

  • 可以監控幾乎所有的子系統。

  • 可以替代許多工具如 ps、top、iotop、vmstat。

  • 可以記錄並回放捕獲的數據。

  • 可以將數據導出成多種數據格式。(這在你想用外部工具分析數據時非常有用)

  • 可以作為一個服務來監控遠程機或者整個服務器集群。

  • 可以在終端顯示數據,寫入數據到文件或者一個套接字。

如何在Linux上安裝collectl

collectl可以在所有的 Linux 發行版上運行,唯一需要的就是 perl 語言,所以在安裝 collectl 之前,一定要確保你的電腦上已經安裝了Perl

對於Debian/Ubuntu/Linux Mint

下面的命令可以用來在以 Debian 為基礎的設備如 Ubuntu 上安裝 collectl。

  1. $ sudo apt-get install collectl

對於RHEL/CentOS/Fedora

如果你正在使用基於紅帽的發行版,你可以用 yum 命令輕松獲取它。

  1. # yum install collectl

一些關於collectl的實例

collectl 工具安裝完成之後,你可以輕松地在終端運行它,你甚至不需要指定任何選項。下面的命令將會以簡短易讀的格式顯示cpu、硬盤和網絡信息。

  1. # collectl
  2. waiting for1 second sample...
  3. #
  4. #cpu sys inter ctxsw KBRead Reads KBWrit Writes KBIn PktIn KBOut PktOut
  5. 13579013220092741305
  6. 102719118600003904
  7. 1207531188005232506
  8. 132733106300001101
  9. 252834137500001101
  10. 2828701424003671101
  11. 1939492271004431101
  12. 172809138400001606
  13. 162732134800001101
  14. 2249931615005631203

正如上面終端上所顯示的,我們很容易觀察該命令輸出的系統度量值,因為它每次以一行顯示。

不加任何參數執行 collectl 會顯示下面子系統的信息

  • cpu
  • 磁盤
  • 網絡

提示:在這裡,一個子系統就是每一種可以測量的系統資源。

你也可以顯示除slabs以外各個子系統的統計數據,這要結合下面的 -all 選項來實現。

  1. # collectl --all
  2. waiting for1 second sample...
  3. #
  4. #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
  5. 16381715424303901G175M1G683M193M1G nsslkjjebbk 002431101000062300081602408290000
  6. 11174513243164261G175M1G683M193M1G nsslkjjebbk 00000302000062200081602408280000
  7. 15279316833714241G175M1G683M193M1G ssslkjjebbk 00001101000062200081602408290000
  8. 16287218754274461G175M1G683M193M1G ssslkjjebbk 002431101000062200081602408280000
  9. 24284213834733681G175M1G683M193M1G ssslkjjebbk 0016861101000062200081602408280000
  10. 27384410994783651G175M1G683M193M1G nsslkjjebbk 00001619000062200081602408280000
  11. 26582312383964281G175M1G683M193M1G ssslkjjebbk 000021139000062200081602408280000
  12. 15175312763613911G175M1G683M193M1G ssslkjjebbk 004031203000062300081602408290000

但是,你如何用它來監控 cpu 的使用情況呢? ‘-s’ 選項可以用來控制哪個子系統的數據需要收集和回放。

例如下面的命令可以用來對cpu使用情況進行一個總結。

  1. # collectl -sc
  2. waiting for1 second sample...
  3. #
  4. #cpu sys inter ctxsw
  5. 1527491155
  6. 1637721445
  7. 1427931247
  8. 2748871292
  9. 2417961258
  10. 1617431113
  11. 1517431179
  12. 1417061078
  13. 1517641268

當你將這個命令與“scdn”結合時會發生什麼呢?學習命令行工具最好的方式就是多加練習,所以在終端運行下面的命令看看會發生什麼吧。

  1. # collectl -scdn
  2. waiting for1 second sample...
  3. #
  4. #cpu sys inter ctxsw KBRead Reads KBWrit Writes KBIn PktIn KBOut PktOut
  5. 254943333300001102
  6. 273825291000001101
  7. 275886253100000001
  8. 204872240600001101
  9. 2618542091002021101
  10. 3941004339800002836
  11. 4169552464004031203
  12. 257890160900001101
  13. 162814116500796432202
  14. 1417791383004861101
  15. 11279512850000214114

更多詳情見請繼續閱讀下一頁的精彩內容: http://www.linuxidc.com/Linux/2014-06/102805p2.htm

Copyright © Linux教程網 All Rights Reserved