Collectl: Usa ka Advanced All-in-One Performance Monitoring Tool para sa Linux


Ang labing importante nga katungdanan sa usa ka Linux system administrator mao ang pagsiguro nga ang sistema nga iyang gidumala anaa sa maayo kaayo nga kondisyon. Adunay daghang mga himan nga magamit alang sa usa ka admin sa sistema sa Linux nga makatabang sa pagmonitor ug pagpakita sa mga proseso sa usa ka sistema sama sa htop, apan walay bisan usa niini nga mga himan ang makakompetensya sa collectl.

Ang collectl usa ka nindot kaayo nga feature rich command-line utility nga magamit sa pagkolekta sa performance data nga naghulagway sa kasamtangan nga status sa sistema. Dili sama sa kadaghanan sa uban pang mga himan sa pagmonitor, ang collectl wala mag-focus sa limitado nga gidaghanon sa mga sukatan sa sistema, sa baylo kini makatigum og impormasyon sa daghang lain-laing mga matang sa mga kapanguhaan sa sistema sama sa cpu, disk, memorya, network, sockets, tcp, inodes, infiniband, lustre, memorya, nfs, proseso, quadrics, slabs ug buddyinfo.

Ang usa ka maayo kaayo nga butang bahin sa paggamit sa collectl mao nga kini mahimo usab nga magdula sa papel sa mga utilities nga gidisenyo nga adunay piho nga katuyoan sama sa top, ps, iotop ug daghan pa. Unsa ang pipila ka mga bahin nga naghimo sa pagkolekta nga usa ka mapuslanon nga himan?

Human sa pagbuhat sa usa ka daghan sa research ako nag-compile sa usa ka listahan uban sa pipila sa mga labing importante nga bahin sa collectl command-line utility alang kaninyo guys.

  1. Mahimo kining modagan nga interactive, isip usa ka daemon o pareho.
  2. Mapakita niini ang output sa daghang mga pormat.
  3. Kini adunay katakus sa pagmonitor sa halos bisan unsang subsystem.
  4. Mahimo kining magdula sa papel sa daghang uban pang mga utilities sama sa ps, top, iotop, vmstat.
  5. Kini adunay katakus sa pagrekord ug pag-playback sa nakuha nga datos.
  6. Mahimong ma-eksport ang datos sa lain-laing mga format sa file. (Kini mapuslanon kaayo kung gusto nimong analisahon ang datos gamit ang mga eksternal nga himan).
  7. Mahimo kining modagan isip usa ka serbisyo sa pagmonitor sa layo nga mga makina o tibuok server cluster.
  8. Makapakita ni sa datos sa terminal, makasulat sa file o sa socket.

Giunsa ang Pag-install sa collectl sa Linux

Ang collectl utility nagdagan sa tanang distribusyon sa Linux, ang bugtong butang nga gikinahanglan sa pagdagan mao ang perl, busa siguroha nga na-install nimo ang Perl sa imong makina sa dili pa i-install ang collectl sa imong makina.

Ang mosunod nga sugo mahimong gamiton sa pag-instalar sa collectl utility sa Debian based machines sama sa Ubuntu.

$ sudo apt-get install collectl

Kung naggamit ka sa Red Hat nga nakabase sa distro, dali nimo makuha kini gikan sa mga repo gamit ang yum command.

# yum install collectl

Pipila ka Praktikal nga mga Ehemplo Sa Collectl Utility

Kung nahuman na ang pag-install sa tool sa collectl, dali nimo kini mapadagan gikan sa terminal, bisan kung wala’y kapilian. Ang mosunod nga sugo magpakita sa impormasyon sa cpu, disk ug network stats sa mubo kaayo ug mabasa sa tawo nga format.

# 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

Sama sa imong makita nga mga lalaki gikan sa ibabaw nga output nga gipakita sa terminal screen, sayon kaayo nga magtrabaho uban ang mga sukdanan sa sistema nga mga bili nga anaa sa command output tungod kay kini makita sa usa ka linya.

Kung ang collectl utility gipatuman nga walay bisan unsang kapilian kini nagpakita sa impormasyon mahitungod sa mosunod nga mga subsystem:

  1. cpu
  2. mga disk
  3. network

Mubo nga sulat: Sa among kaso, ang usa ka subsystem mao ang matag matang sa usa ka kapanguhaan sa sistema nga mahimong masukod.

Mahimo usab nimo ipakita ang mga istatistika alang sa tanan nga mga subsystem gawas sa mga slab pinaagi sa paghiusa sa mando sa -all nga kapilian sama sa gipakita sa ubos.

# 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

Apan, giunsa nimo pag-monitor ang paggamit sa cpu sa tabang sa utility? Ang '-s' nga kapilian kinahanglan gamiton aron makontrol kung unsang subsystem nga datos ang kolektahon o i-play balik.

Pananglitan ang mosunod nga sugo mahimong gamiton sa pagmonitor sa summary sa paggamit sa cpu.

# 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

Unsa ang mahitabo kung imong gihiusa ang mando sa scdn? Ang labing kaayo nga paagi aron mahibal-an kung giunsa ang paggamit sa mga tool sa command-line mao ang pagpraktis kutob sa mahimo, busa padagana ang mosunud nga mando sa imong terminal ug tan-awa kung unsa ang mahitabo.

# 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

Dali nimong masabtan nga ang default nga kapilian mao ang cdn, kini nagpasabut sa cpu, mga disk ug data sa network. Ang resulta sa sugo parehas sa output sa collectl -scn

Kung gusto nimong kolektahon ang datos bahin sa memorya, gamita ang mosunud nga mando.

# 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

Ang naa sa taas nga output mapuslanon kaayo kung gusto nimo makakuha pipila ka detalyado nga kasayuran sa paggamit sa imong memorya, libre nga memorya ug uban pang hinungdanon nga butang alang sa paghimo sa imong sistema.

Unsa man ang bahin sa pipila ka datos sa tcp? Gamita ang mosunod nga sugo sa pagbuhat niini.

# 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

Human nimo maangkon ang pipila ka kasinatian dali nimong makombinar ang mga opsyon aron makuha ang mga resulta nga imong gusto. Pananglitan mahimo nimong ikombinar ang t para sa tcp ug c para sa cpu. Ang mosunod nga sugo naghimo niana.

# 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

Lisud alang kanatong mga tawo nga hinumdoman ang tanan nga magamit nga mga kapilian mao nga akong gi-post ang summary nga lista sa mga subsystem nga gisuportahan sa himan.

  1. b – buddy info (pagkabahinbahin sa memorya)
  2. c – CPU
  3. d – Disk
  4. f – NFS V3 Data
  5. i – Inode ug File System
  6. j – Mga interrupt
  7. l – Lustre
  8. m – Memorya
  9. n – Mga Network
  10. s – Mga socket
  11. t – TCP
  12. x – Interconnect
  13. y – Mga slab (mga cache sa butang sa sistema)

Ang usa ka hinungdanon kaayo nga piraso sa datos alang sa usa ka tagdumala sa sistema o usa ka tiggamit sa Linux mao ang datos nga nakolekta sa paggamit sa disk. Ang mosunod nga sugo makatabang kanimo sa pagmonitor sa paggamit sa disk.

# 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

Mahimo usab nimo gamiton ang opsyon nga -sD sa pagkolekta sa datos sa indibidwal nga mga disk, apan kinahanglan nimong masayran nga ang impormasyon sa kinatibuk-ang mga disk dili i-report.

# 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

Mahimo usab nimong gamiton ang ubang mga subsystem sa detalye aron makolekta ang detalyado nga datos. Ang mosunod usa ka lista sa mga subsystem nga detalye.

  1. C – CPU
  2. D – Disk
  3. E – Environmental data (fan, power, temp), pinaagi sa ipmitool
  4. F – NFS Data
  5. J – Mohunong
  6. L – Detalye sa Lustre OST O detalye sa Filesystem sa kliyente
  7. N – Mga Network
  8. T – 65 TCP counters anaa lang sa plot format
  9. X – Interconnect
  10. Y – Mga slab (mga cache sa butang sa sistema)
  11. Z – Mga Proseso

Adunay daghang magamit nga mga kapilian sa collectl utility, apan walay igong panahon ug luna aron matabonan silang tanan sa usa lang ka artikulo. Bisan pa, angay nga hisgutan ug itudlo kung giunsa ang paggamit sa utility ingon top ug ps.

Sayon ra kaayo ang paghimo sa collectl work isip top utility, padagana lang ang mosunod nga command sa imong terminal ug imong makita ang susama nga output nga gihatag sa top tool kanimo kung kini gipatuman sa imong Linux system.

# 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

Ug karon ang katapusan apan dili labing gamay, aron magamit ang collectl utility ingon nga himan sa ps ipadagan ang mosunud nga mando sa imong terminal. Makuha nimo ang kasayuran bahin sa mga proseso sa imong sistema sa parehas nga paagi sama sa imong gibuhat kung imong gipadagan ang ps nga mando sa imong terminal.

# 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

Sigurado ako nga daghang mga tigdumala sa sistema sa Linux ang ganahan niini nga himan ug mabati ang gahum niini kung gamiton kini sa hingpit. Kung gusto nimo nga ipauswag ang imong kahibalo bahin sa collectl hangtod sa sunod nga lebel tan-awa ang mga manwal nga panid niini ug padayon nga magpraktis.

I-type lang ang mosunod nga sugo sa imong terminal ug magsugod sa pagbasa.

# man collectl

Mga Reperensya nga Link

collectl Homepage