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.
- See võib toimida interaktiivselt, deemonina või mõlemana.
- See võib väljundit kuvada mitmes vormingus.
- Sellel on võimalus jälgida peaaegu kõiki alamsüsteeme.
- See võib mängida paljude muude utiliitide, näiteks ps, top, iotop, vmstat, rolli.
- Sellel on võimalus salvestatud andmeid taasesitada ja taasesitada.
- See võib andmeid eksportida erinevates failivormingutes. (see on väga kasulik, kui soovite andmeid väliste tööriistadega analüüsida).
- Seda saab kasutada teenusena kaugmasinate või kogu serveriklastri jälgimiseks.
- 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:
- protsessor
- kettad
- 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.
- b - semu teave (mälu killustatus)
- c - protsessor
- d - ketas
- f - NFS V3 andmed
- i - koodi- ja failisüsteem
- j - katkestab
- l - läige
- m - mälu
- n - võrgud
- s - pistikupesad
- t - TCP
- x - ühendage omavahel
- 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.
- C - protsessor
- D - ketas
- E - keskkonnaandmed (ventilaator, võimsus, temp), ipmitooli kaudu
- F - NFS-i andmed
- J - katkestab
- L - sära OST-detail VÕI kliendi failisüsteemi detail
- N - võrgud
- T - 65 TCP loendurit on saadaval ainult proovivormingus
- X - ühendage omavahel
- Y - tahvlid (süsteemiobjektide vahemälud)
- 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