Collectl: uzlabots all-in-one veiktspējas uzraudzības rīks Linux


Vissvarīgākais Linux sistēmas administratora pienākums ir pārliecināties, ka viņa administrētā sistēma ir ļoti labā stāvoklī. Linux sistēmas administratoriem ir pieejami daudzi rīki, kas var palīdzēt uzraudzīt un parādīt procesus sistēmā, piemēram, htop, taču neviens no šiem rīkiem nevar konkurēt ar collectl.

collectl ir ļoti jauka ar komandu bagātināta komandrindas lietderība, kuru var izmantot veiktspējas datu apkopošanai, kas apraksta pašreizējo sistēmas statusu. Atšķirībā no vairuma citu uzraudzības rīku, collectl netiek koncentrēts ierobežotā skaitā sistēmas metriku, tā vietā tā var apkopot informāciju par daudziem dažādiem sistēmas resursu veidiem, piemēram, CPU, disku, atmiņu, tīklu, kontaktligzdām, TCP, inodēm, bezgalīgo joslu, spīdums, atmiņa, nfs, procesi, kvadrāti, plātnes un buddyinfo.

Ļoti laba lieta saistībā ar collectl lietošanu ir tā, ka tā var spēlēt arī utilītprogrammas, kuras ir izstrādātas tikai ar noteiktu mērķi, piemēram, top, ps, iotop un daudzas citas. Kādas ir funkcijas, kas padara Colleclt par noderīgu rīku?

Pēc daudz pētījumu veikšanas, es, puiši, esmu izveidojis sarakstu ar dažām svarīgākajām komandrindas utilītas collectl funkcijām.

  1. Tas var darboties interaktīvi kā dēmons vai abi.
  2. Tas var parādīt izvadi dažādos formātos.
  3. Tam ir iespēja uzraudzīt gandrīz jebkuru apakšsistēmu.
  4. Tas var spēlēt daudzu citu utilītu, piemēram, ps, top, iotop, vmstat, lomu.
  5. Tam ir iespēja ierakstīt un atskaņot uzņemtos datus.
  6. Tas var eksportēt datus dažādos failu formātos. (tas ir ļoti noderīgi, ja vēlaties analizēt datus ar ārējiem rīkiem).
  7. Tas var darboties kā pakalpojums, lai uzraudzītu attālās mašīnas vai visu serveru kopu.
  8. Tas var parādīt datus terminālā, ierakstīt failā vai kontaktligzdā.

Kā instalēt collectl Linux

Utilīts collectl darbojas visos Linux izplatījumos, vienīgais, kas nepieciešams, lai palaistu, ir perl, tāpēc pirms collectl instalēšanas datorā pārliecinieties, vai jūsu mašīnā ir instalēts Perl.

Šo komandu var izmantot, lai instalētu utilītu collectl Debian datoros, piemēram, Ubuntu.

$ sudo apt-get install collectl

Ja izmantojat uz Red Hat balstītu distro, varat to viegli paņemt no repo, izmantojot komandu yum.

# yum install collectl

Daži praktiski piemēri kolekcionēšanas utilītprogrammai

Kad kolekcionēšanas rīka instalēšana ir pabeigta, to var viegli palaist no termināla, pat bez jebkādas iespējas. Šī komanda parādīs informāciju cpu, diska un tīkla statistikā ļoti īsā un cilvēkiem lasāmā formātā.

# 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

Kā jūs, puiši, redzat no iepriekš minētās izejas, kas parādīta termināla ekrānā, ir ļoti viegli strādāt ar sistēmas metrikas vērtībām, kas atrodas komandu izvadā, jo tas parādās vienā rindā.

Kad utilīta collectl tiek izpildīta bez opcijas, tā parāda informāciju par šādām apakšsistēmām:

  1. cpu
  2. diski
  3. tīkls

Piezīme: Mūsu gadījumā apakšsistēma ir katrs sistēmas resursa veids, ko var izmērīt.

Varat arī parādīt visu apakšsistēmu statistiku, izņemot plātnes, apvienojot komandu ar opciju –all, kā parādīts zemāk.

# 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

Bet kā jūs ar lietderības palīdzību pārrauga procesora lietošanu? Opcija ‘-s’ jāizmanto, lai kontrolētu, kuri apakšsistēmas dati ir jāapkopo vai jāatskaņo.

Piemēram, šo procesu var izmantot, lai uzraudzītu CPU izmantošanas kopsavilkumu.

# 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

Kas notiek, ja komandu apvienojat ar “scdn”? Labākais veids, kā uzzināt, kā izmantot komandrindas rīkus, ir pēc iespējas vairāk praktizēt, tāpēc palaidiet šo komandu savā terminālā un uzziniet, kas notiks.

# 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

Jūs varat viegli saprast, ka noklusējuma opcija ir “cdn”, tas nozīmē CPU, diskus un tīkla datus. Komandas rezultāts ir vienāds ar “collectl -scn” izvadi

Ja vēlaties apkopot datus par atmiņu, izmantojiet šo komandu.

# 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

Iepriekš minētā izeja ir ļoti noderīga, ja vēlaties iegūt detalizētu informāciju par atmiņas lietojumu, brīvo atmiņu un citu svarīgu informāciju sistēmas veiktspējai.

Kā būtu ar dažiem datiem par TCP? Lai to izdarītu, izmantojiet šādu komandu.

# 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ēc tam, kad esat ieguvis zināmu pieredzi, varat viegli apvienot iespējas, lai iegūtu vēlamos rezultātus. Piemēram, jūs varat apvienot “t” tcp un “c” cpu. Šāda komanda to dara.

# 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

Mums, cilvēkiem, ir grūti atcerēties visas pieejamās iespējas, tāpēc es ievietoju rīka atbalstīto apakšsistēmu kopsavilkuma sarakstu.

  1. b - draugu informācija (atmiņas sadrumstalotība)
  2. c - centrālais procesors
  3. d - disks
  4. f - NFS V3 dati
  5. i - Inode un failu sistēma
  6. j - pārtrauc
  7. l - spīdums
  8. m - atmiņa
  9. n - tīkli
  10. s - kontaktligzdas
  11. t - TCP
  12. x - savstarpēji savienot
  13. y - plāksnes (sistēmas objektu kešatmiņas)

Ļoti svarīgs datu kopums sistēmas administratoram vai Linux lietotājam ir dati, kas savākti par diska lietojumu. Šī komanda palīdzēs jums uzraudzīt diska lietojumu.

# 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

Varat arī izmantot opciju “-sD”, lai vāktu datus par atsevišķiem diskiem, taču jums jāzina, ka informācija par kopējiem diskiem netiks ziņota.

# 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

Detalizētu datu apkopošanai varat izmantot arī citas detalizētas apakšsistēmas. Šis ir detalizētu apakšsistēmu saraksts.

  1. C - centrālais procesors
  2. D - disks
  3. E - vides dati (ventilators, jauda, temperatūra), izmantojot ipmitool
  4. F - NFS dati
  5. J - pārtrauc
  6. L - Luster OST detaļa VAI klienta failu sistēmas informācija
  7. N - tīkli
  8. T - 65 TCP skaitītāji ir pieejami tikai diagrammas formātā
  9. X - savstarpēji savienojiet
  10. Y - plāksnes (sistēmas objektu kešatmiņas)
  11. Z - procesi

Lietotnē collectl ir daudz pieejamo iespēju, taču nepietiek laika un vietas, lai tās visas aptvertu tikai vienā rakstā. Tomēr ir vērts pieminēt un iemācīt, kā lietderību izmantot kā top un ps.

Ir ļoti viegli padarīt colll darbu kā galveno utilītu, vienkārši palaidiet šo komandu savā terminālā, un jūs redzēsiet līdzīgu izeju, ko augšējais rīks dod jums, kad tas tiek izpildīts jūsu Linux sistēmā.

# 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

Un visbeidzot, lai izmantotu utilītu collectl kā ps rīku, palaidiet šo komandu savā terminālā. Informāciju par procesiem jūsu sistēmā saņemsiet tāpat kā to darot, palaižot komandu “ps” savā terminālā.

# 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

Esmu ļoti pārliecināts, ka daudziem Linux sistēmas administratoriem šis rīks patiks un sajutīs tā spēku, to pilnībā izmantojot. Ja vēlaties paaugstināt savas zināšanas par collectl uz nākamo līmeni, skatiet tā rokasgrāmatas lapas un turpiniet praktizēt.

Vienkārši ierakstiet šo komandu savā terminālā un sāciet lasīt.

# man collectl

Atsauces saites

collectl mājas lapa