Collectl: täiustatud kõik-ühes jõudluse jälgimise tööriist Linuxile


Linuxi süsteemiadministraatori kõige olulisem kohustus on veenduda, et tema hallatav süsteem on väga heas seisukorras. Linuxi süsteemi administraatorite jaoks on saadaval palju tööriistu, mis võivad aidata protsesside jälgimist ja kuvamist sellises süsteemis nagu htop, kuid ükski neist tööriistadest ei suuda collectliga konkureerida.

collectl on väga kena funktsioonirikas käsurea utiliit, mida saab kasutada süsteemi praegust olekut kirjeldavate jõudlusandmete kogumiseks. Erinevalt enamikust teistest seiretööriistadest ei keskendu collectl piiratud arvul süsteemimõõdikutel, selle asemel võib see koguda teavet paljude erinevate süsteemiressursside kohta, näiteks protsessor, ketas, mälu, võrk, pistikupesad, TCP, inoodid, lõpmatus, läige, mälu, nfs, protsessid, kvadrikud, tahvlid ja semuinfo.

Väga hea asi kollektsiooni kasutamisel on see, et see võib mängida ka ainult kindla otstarbega loodud utiliite nagu top, ps, iotop ja paljud teised. Mis on mõned funktsioonid, mis muudavad Collecltist kasuliku tööriista?

Pärast põhjalikku uurimist olen koostanud nimekirja käsurea utiliidi collectl kõige olulisematest omadustest teie jaoks.

  1. See võib toimida interaktiivselt, deemonina või mõlemana.
  2. See võib väljundit kuvada mitmes vormingus.
  3. Sellel on võimalus jälgida peaaegu kõiki alamsüsteeme.
  4. See võib mängida paljude muude utiliitide, näiteks ps, top, iotop, vmstat, rolli.
  5. Sellel on võimalus salvestatud andmeid taasesitada ja taasesitada.
  6. See võib andmeid eksportida erinevates failivormingutes. (see on väga kasulik, kui soovite andmeid väliste tööriistadega analüüsida).
  7. Seda saab kasutada teenusena kaugmasinate või kogu serveriklastri jälgimiseks.
  8. See võib kuvada andmeid terminalis, kirjutada faili või pistikupessa.

Kuidas installida collectl Linuxi

Kollektiivi utiliit töötab kõikides Linuxi distributsioonides, ainus asi, mida see nõuab, on perl, seega veenduge, et Perl oleks arvutisse installitud, enne kui installite arvutisse kollektsiooni.

Järgmist käsku saab kasutada utiliidi collectl installimiseks Debiani põhistes masinates, näiteks Ubuntu.

$ sudo apt-get install collectl

Kui kasutate Red Hatil põhinevat levitamist, saate selle käskudega yum hõlpsasti haarata.

# yum install collectl

Mõned praktilised näited kogumisutiliidist

Kui tööriista collectl installimine on lõpule jõudnud, saate seda terminalist hõlpsasti käivitada, isegi ilma igasuguse valikuta. Järgmine käsk kuvab teavet protsessori, ketta ja võrgu statistikas väga lühikeses ja inimloetavas vormingus.

# 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

Nagu te ülaltoodud terminaliekraanil kuvatavast väljundist näete, on käsu väljundis olevate süsteemimõõdikute väärtustega töötamine väga lihtne, kuna see kuvatakse ühel real.

Kui utiliit collectl käivitatakse ilma ühegi suvandita, kuvab see teavet järgmiste alamsüsteemide kohta:

  1. protsessor
  2. kettad
  3. võrk

Märkus: meie puhul on alamsüsteem igat tüüpi süsteemiressurss, mida saab mõõta.

Samuti saate kuvada kõigi alamsüsteemide statistikat, välja arvatud tahvlid, kombineerides käsu suvandiga –all nagu allpool näidatud.

# 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

Kuidas aga utiliidi abil protsessori kasutamist jälgida? Valikut ‘-s’ tuleks kasutada juhtimaks, milliseid alamsüsteemi andmeid tuleb koguda või taasesitada.

Näiteks saab käsu CPU kasutamise kokkuvõtte jälgimiseks kasutada järgmist käsku.

# 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

Mis juhtub, kui ühendate käsu scdn-ga? Parim viis käsurea tööriistade kasutamise õppimiseks on harjutada nii palju kui võimalik, nii et käivitage järgmine käsk oma terminalis ja vaadake, mis juhtuma hakkab.

# 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

Saate hõlpsasti aru saada, et vaikevalik on „cdn“, see tähistab protsessorit, kettaid ja võrgu andmeid. Käsu tulemus on sama kui „collectl -scn” väljund

Kui soovite mälu kohta andmeid koguda, kasutage järgmist käsku.

# 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

Ülaltoodud väljund on väga kasulik, kui soovite saada üksikasjalikku teavet oma mälukasutuse, vaba mälu ja muu süsteemi toimimiseks olulise kohta.

Kuidas oleks TCP-ga seotud andmetega? Selleks kasutage järgmist käsku.

# 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

Pärast kogemuste omandamist saate soovitud tulemuste saamiseks valikuid hõlpsalt kombineerida. Näiteks saate kombineerida tcp jaoks t ja cpu cpu. Seda teeb järgmine käsk.

# 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

Meil inimestel on raske kõiki saadaolevaid võimalusi meeles pidada, nii et postitan tööriista toetatud alamsüsteemide kokkuvõtliku loendi.

  1. b - semu teave (mälu killustatus)
  2. c - protsessor
  3. d - ketas
  4. f - NFS V3 andmed
  5. i - koodi- ja failisüsteem
  6. j - katkestab
  7. l - läige
  8. m - mälu
  9. n - võrgud
  10. s - pistikupesad
  11. t - TCP
  12. x - ühendage omavahel
  13. y - tahvlid (süsteemiobjektide vahemälud)

Süsteemi administraatori või Linuxi kasutaja jaoks on väga oluline teave kettakasutuse kohta kogutud andmed. Järgmine käsk aitab teil ketta kasutamist jälgida.

# 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

Üksikute ketaste andmete kogumiseks võite kasutada ka valikut “-sD”, kuid peate teadma, et kogu ketaste kohta teavet ei esitata.

# 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

Üksikasjalike andmete kogumiseks võite kasutada ka muid detailide alamsüsteeme. Järgnevalt on toodud detailide alamsüsteemide loetelu.

  1. C - protsessor
  2. D - ketas
  3. E - keskkonnaandmed (ventilaator, võimsus, temp), ipmitooli kaudu
  4. F - NFS-i andmed
  5. J - katkestab
  6. L - sära OST-detail VÕI kliendi failisüsteemi detail
  7. N - võrgud
  8. T - 65 TCP loendurit on saadaval ainult proovivormingus
  9. X - ühendage omavahel
  10. Y - tahvlid (süsteemiobjektide vahemälud)
  11. Z - protsessid

Kollektiivi utiliidis on palju saadaolevaid valikuid, kuid nende kõigi kajastamiseks ainult ühes artiklis pole piisavalt aega ja ruumi. Siiski tasub mainida ja õpetada utiliidi kasutamist topina ja ps-na.

Kollektsiooni on üliutiliidina väga lihtne tööle panna, käivitage oma terminalis järgmine käsk ja näete sarnast väljundit, mille ülemine tööriist teile annab, kui see teie Linuxi süsteemis käivitatakse.

# 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

Ja viimasena, kuid mitte vähem tähtsana, utiliidi collectl kasutamiseks ps-tööriistana käivitage oma terminalis järgmine käsk. Teavet oma süsteemis toimuvate protsesside kohta saate samamoodi nagu terminalis käsu “ps” käivitamisel.

# 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

Olen väga kindel, et see tööriist meeldib paljudele Linuxi süsteemiadministraatoritele ja tunnevad selle täielikku kasutamist selle jõudu. Kui soovite oma teadmisi kollektsiooni kohta uuele tasemele viia, vaadake selle käsiraamatu lehti ja jätkake harjutamist.

Lihtsalt tippige oma terminali järgmine käsk ja alustage lugemist.

# man collectl

Viited

collectl koduleht