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.
- Tas var darboties interaktīvi kā dēmons vai abi.
- Tas var parādīt izvadi dažādos formātos.
- Tam ir iespēja uzraudzīt gandrīz jebkuru apakšsistēmu.
- Tas var spēlēt daudzu citu utilītu, piemēram, ps, top, iotop, vmstat, lomu.
- Tam ir iespēja ierakstīt un atskaņot uzņemtos datus.
- 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).
- Tas var darboties kā pakalpojums, lai uzraudzītu attālās mašīnas vai visu serveru kopu.
- 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:
- cpu
- diski
- 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.
- b - draugu informācija (atmiņas sadrumstalotība)
- c - centrālais procesors
- d - disks
- f - NFS V3 dati
- i - Inode un failu sistēma
- j - pārtrauc
- l - spīdums
- m - atmiņa
- n - tīkli
- s - kontaktligzdas
- t - TCP
- x - savstarpēji savienot
- 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.
- C - centrālais procesors
- D - disks
- E - vides dati (ventilators, jauda, temperatūra), izmantojot ipmitool
- F - NFS dati
- J - pārtrauc
- L - Luster OST detaļa VAI klienta failu sistēmas informācija
- N - tīkli
- T - 65 TCP skaitītāji ir pieejami tikai diagrammas formātā
- X - savstarpēji savienojiet
- Y - plāksnes (sistēmas objektu kešatmiņas)
- 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