歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux系統監控神器--Collectl

Linux系統監控神器--Collectl

日期:2017/2/28 14:33:40   编辑:Linux教程

系統資源監控

為使系統良好運轉,Linux系統管理員經常需要監測cpu,內存,磁盤,網絡等系統信息。Linux上已有iotop,top,free,htop,sar等豐富的常規工具來實現監測功能。今天讓我們走進Collectl來了解這個集測試/監控/分析系統性能為一體的Linux工具。

Collectl作為一個輕量級的監控工具,在同類工具中是功能最全的。用戶可監測不同的復雜系統矩陣值,並可保留數據以做之後的分析。不同於其他只用來監測特定系統參數的工具,Collectl可以同時監測不同的變量,並以合適的方式記錄它們。

摘自Collectl官網 ...

不同於或聚焦於一小組統計數據、采用唯一輸出方式,或采用迭代、作為守護進程運行的大部分監測工具,collectl可以同時全部實現。用戶可選擇各種子系統中的任一系統來監測包括內存,CPU,磁盤,索引節點,無線帶寬,lustre,內存,網絡,網絡文件系統,進程,二次型,slabs,套接口及TCP等信息。

深入學習前讓我們先看以下命令。

  1. $ collectl
  2. waiting for1 second sample...
  3. #<--------CPU--------><----------Disks-----------><----------Network---------->
  4. #cpu sys inter ctxsw KBRead Reads KBWrit Writes KBIn PktIn KBOut PktOut
  5. 00864177200000100
  6. 521338273400820001
  7. 1012222647009230201
  8. 107631722008030102

CPU使用率,磁盤輸入輸出和網絡活動以每秒為單位來加載。對可以理解這些數據的人來說這些信息很容易讀懂。這項列表在給定的時間間隔裡會持續增加,並可直接形成一項文件跟蹤日志。collectl工具提供了各種命令來對這些數據進行記錄,查找及做其他處理。

安裝collectl工具

對Ubuntu/Debian用戶來說Collectl是默認資源,所以使用apt命令便可獲取。

  1. $ sudo apt-get install collectl

Fedora/CentOS用戶使用yum命令便可獲取。

  1. $ yum install collectl

使用

必要的了解 - Collectl子系統

子系統是可檢測到的不同系統資源類型。像CPU,內存,帶寬等等都可構成一個子系統。只運行collectl命令將以批處理模式輸出CPU,磁盤和網絡子系統信息,我們在上文已看到相關內容。

從操作說明可以看到,Collectl可以識別以下子系統。

  1. 總計子系統
  2. b - buddy info (內存片段)
  3. c - CPU
  4. d -Disk
  5. f - NFS V3 Data
  6. i -InodeandFileSystem
  7. j -Interrupts
  8. l -Lustre
  9. m -Memory
  10. n -Networks
  11. s -Sockets
  12. t - TCP
  13. x -Interconnect
  14. y -Slabs(system object caches)
  15. 細節子系統
  16. 這是一系列的詳細信息,大部分情況下都會由相應的總計數據衍生出來。目前“環境變量”和“進程”2類沒有相應的總計數據。如果有3個磁盤,選擇-sd,將只會看到3個磁盤組合出的單一信息。如果選擇-sD,將會分別顯示各磁盤信息。
  17. C - CPU
  18. D -Disk
  19. E -Environmental data (fan, power, temp), via ipmitool
  20. F - NFS Data
  21. J -Interrupts
  22. L -Lustre OST detail OR client Filesystem detail
  23. M -Memory node data, which is also known as numa data
  24. N -Networks
  25. T -65 TCP counters only available in plot format
  26. X -Interconnect
  27. Y -Slabs(system object caches)
  28. Z -Processes

使用“-s”來監測特定的子系統並向其添加子系統的識別項。現在讓我們舉幾個例子。

1. 監測cpu使用率

用“-sc”實現CPU總使用率的監測

  1. $ collectl -sc
  2. waiting for1 second sample...
  3. #<--------CPU-------->
  4. #cpu sys inter ctxsw
  5. 3018003729
  6. 3017673599

使用“-C”觀察各個單獨的CPU使用情況。結果將會輸出多行,分別對應一個CPU。

  1. $ collectl -sC
  2. waiting for1 second sample...
  3. # SINGLE CPU STATISTICS
  4. # Cpu User Nice Sys Wait IRQ Soft Steal Idle
  5. 0300000096
  6. 1300000096
  7. 2200000097
  8. 3100000098
  9. 0200000097
  10. 1202000095
  11. 2100000098
  12. 3401000095

如果需要,可以同時使用C和c來獲取單項CPU監測數據和匯總數據。

2. 內存監測

使用m子系統查看內存。

  1. $ collectl -sm
  2. waiting for1 second sample...
  3. #<-----------Memory----------->
  4. #Free Buff Cach Inac Slab Map
  5. 2G220M1G1G210M3G
  6. 2G220M1G1G210M3G
  7. 2G220M1G1G210M3G

不難解釋。 M用來查看更多內存的詳細信息。

  1. $ collectl -sM
  2. waiting for1 second sample...
  3. # MEMORY STATISTICS
  4. # Node Total Used Free Slab Mapped Anon Locked Inact Hit%
  5. 07975M5939M2036M215720K372184K06652K1434M0
  6. 07975M5939M2036M215720K372072K06652K1433M0

這類似於免費報告嗎?

3. 查看磁盤使用情況

d和D可以查看磁盤使用的概況和詳細情況。

  1. $ collectl -sd
  2. waiting for1 second sample...
  3. #<----------Disks----------->
  4. #KBRead Reads KBWrit Writes
  5. 4113624
  6. 008013
  7. $ collectl -sD
  8. waiting for1 second sample...
  9. # DISK STATISTICS (/sec)
  10. # <---------reads---------><---------writes---------><--------averages--------> Pct
  11. #Name KBytes Merged IOs Size KBytes Merged IOs Size RWSize QLen Wait SvcTim Util
  12. sda 0000000000000
  13. sda 0000000000000
  14. sda 10211715322621
  15. sda 0000921151818112125

“--verbose”命令可以用來查看附加信息。和D命令不同,它將概況擴展,包含了更多信息。

  1. $ collectl -sd --verbose

4. 同時報告多系統情況

如果想要同時得到CPU,內存和磁盤報告,那麼同時使用子命令組合來實現。

  1. $ collectl -scmd
  2. waiting for1 second sample...
  3. #<--------CPU--------><-----------Memory-----------><----------Disks----------->
  4. #cpu sys inter ctxsw Free Buff Cach Inac Slab Map KBRead Reads KBWrit Writes
  5. 40218743341G221M1G1G210M3G0000
  6. 30189640651G221M1G1G210M3G00205

5. 顯示統計時間

若要將每行的監測信息和時間一同顯示,使用T選項。通過在“-o”參數來指定。

  1. $ collectl -scmd -oT
  2. waiting for1 second sample...
  3. # <--------CPU--------><-----------Memory-----------><----------Disks----------->
  4. #Time cpu sys inter ctxsw Free Buff Cach Inac Slab Map KBRead Reads KBWrit Writes
  5. 12:03:0530196140131G225M1G1G212M3G0000
  6. 12:03:0630188438101G225M1G1G212M3G0000
  7. 12:03:0730201140601G225M1G1G212M3G0000

使用“-oTm”可將時間換成毫秒顯示。

Copyright © Linux教程網 All Rights Reserved