Memantau sumber daya sistem & analisis kinerja adalah tugas penting setiap administrator sistem. Ada banyak alat yang tersedia untuk Linux untuk memantau kinerja sistem, termasuk utilitas top, htop, free, dll.

Collectl adalah alat pemantauan kinerja yang free dan open source yang dapat digunakan untuk mengumpulkan informasi sumber daya sistem seperti, cpu, disk, memori, jaringan, Infiniband, lustre, memori, nfs, slabs, dan banyak lagi.

Tidak seperti alat pemantauan lain, collectl fokus pada set kecil statistik. Collectl mampu memonitor berbagai parameter secara bersamaan dan melaporkannya dengan cara yang sesuai. Collectl hadir dengan sejumlah opsi yang membantu Anda mengidentifikasi segala jenis masalah kinerja sistem. Menggunakan collectl, Anda dapat menghasilkan output yang sama dengan perintah mpstat, netstat, nfsstat, sar, ps, top dan iostat.

fitur collectl

  • Kemampuan untuk menampilkan output dalam banyak format.
  • Ekspor data dalam berbagai format file.
  • Kemampuan untuk dijalankan sebagai layanan untuk memantau mesin jarak jauh.
  • Pantau hampir semua subsistem.

Dalam tutorial ini, kita akan belajar cara menginstal dan menggunakan Collectl di server Ubuntu 18.04.

Persyaratan

Mulai

Sebelum memulai, Anda perlu memperbarui sistem Anda dengan versi terbaru. Anda dapat melakukan ini dengan menjalankan perintah berikut:

sudo apt-get update && sudo apt-get upgrade -y

Setelah server Anda diperbarui, Anda dapat melanjutkan ke langkah selanjutnya.

Instal Collectl

Secara default, Collectl tersedia di repositori default Ubuntu 18.04. Anda dapat menginstalnya dengan menjalankan perintah berikut:

sudo apt-get install collectl -y

Setelah instalasi selesai, Anda dapat menjalankan perintah berikut untuk melihat semua opsi yang tersedia untuk collectl:

collectl --h

Anda akan melihat output berikut:

This is a subset of the most common switches and even the descriptions are
abbreviated.  To see all type 'collectl -x', to get started just type 'collectl'

usage: collectl [switches]
  -c, --count      count      collect this number of samples and exit
  -f, --filename   file       name of directory/file to write to
  -i, --interval   int        collection interval in seconds [default=1]
  -o, --options    options    misc formatting options, --showoptions for all
                                d|D - include date in output
                                  T - include time in output
                                  z - turn off compression of plot files
  -p, --playback   file       playback results from 'file' (be sure to quote
			      if wild carded) or the shell might mess it up
  -P, --plot                  generate output in 'plot' format
  -s, --subsys     subsys     specify one or more subsystems [default=cdn]
      --verbose               display output in verbose format (automatically
                              selected when brief doesn't make sense)

Various types of help
  -h, --help                  print this text
  -v, --version               print version
  -V, --showdefs              print operational defaults
  -x, --helpextend            extended help, more details descriptions too
  -X, --helpall               shows all help concatenated together

  --showoptions               show all the options
  --showsubsys                show all the subsystems
  --showsubopts               show all subsystem specific options
  --showtopopts               show --top options

  --showheader                show file header that 'would be' generated
  --showcolheaders            show column headers that 'would be' generated
  --showslabaliases           for SLUB allocator, show non-root aliases
  --showrootslabs             same as --showslabaliases but use 'root' names

Copyright 2003-2016 Hewlett-Packard Development Company, L.P.
collectl may be copied only under the terms of either the Artistic License
or the GNU General Public License, which may be found in the source kit

Cara Menggunakan Collectl

Sekarang, jalankan collectl tanpa opsi apa pun akan menampilkan informasi tentang cpu, disk, dan statistik jaringan dalam format yang sangat pendek dan dapat dengan mudah dibaca oleh manusia.

collectl

Anda akan melihat output berikut:

<--------CPU--------><----------Disks-----------><----------Network---------->

#cpu sys inter  ctxsw KBRead  Reads KBWrit Writes   KBIn  PktIn  KBOut  PktOut  
   8   0   942   4183    128      1      0      0      0      0      0       0  
   7   1   973   4393      0      0     80      6      0      3      3       4  
  14   3  1268   6025      0      0      0      0      0      2      0       1  
  26  12  1459   6551      0      0    164      3      0      0      0       0  
  27  13  1854   8698      0      0      0      0      0      1      0       1  
  13   3  1229   4205      0      0    232      3      0      4      1       4  
  10   1  1083   3856      0      0    280      5      0      1      0       1  
   9   2  1066   3747    128      1      0      0      0      2      0       2  
  10   3  1046   4239      0      0      0      0      0      2      0       2  
  10   3  1060   3992      0      0      0      0      0      1      0       2  
  11   2  1062   3907      0      0   1688      3      0      1      0       1  
  10   2  1116   3750      0      0    616     71      0      3      0       1  
  11   2  1046   3627    128      1     80      3      0      2      0       2  
   9   2  1103   4689      0      0      0      0      0      1      0       1  
  13   2  1197   5198      0      0      0      0      0      1      0       1  
  10   2  1124   4365    128      1      0      0      0      0      0       0 

Anda juga dapat list statistik untuk semua subsistem dengan perintah berikut:

collectl --all

Output:

#<--------CPU--------><-------Int--------><-----------------Memory-----------------><----------Disks-----------><----------Network----------><-------TCP--------><------Sockets-----><----Files---><------NFS Totals------>

#cpu sys inter  ctxsw Cpu0 Cpu1 Cpu2 Cpu3 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  
   7   1   950   3436  191  222  258  279 926M   3G   3G   2G   1G   6G ttsssrkg923      0      0    400     43      1      4      1       4    0    0    0    0 1762    0    0    0  17184 644445      0      0    0    0  
   7   1   906   3125  171  202  203  337 928M   3G   3G   2G   1G   6G ttsssrkg923      0      0      0      0      0      0      0       0    0    0    0    0 1762    0    0    0  17184 644445      0      0    0    0  
   7   1   843   3300  259  263  121  201 942M   3G   3G   2G   1G   6G ttsssrkg923      0      0      0      0      0      1      0       1    0    0    0    0 1762    0    0    0  17184 644445      0      0    0    0  
   7   1   852   2790  198  320  188  151 942M   3G   3G   2G   1G   6G ttsssrkg923    128      1      0      0      0      0      0       0    0    0    0    0 1762    0    0    0  17184 644445      0      0    0    0  
   7   1   852   3433  210  279  210  155 942M   3G   3G   2G   1G   6G ttsssrkg923      0      0      0      0      0      0      0       0    0    0    0    0 1762    0    0    0  17184 644445      0      0    0    0  
   6   0   881   3035  171  204  304  206 942M   3G   3G   2G   1G   6G ttsssrkg923      0      0      0      0      0      0      0       0    0    0    0    0 1762    0    0    0  17184 644446      0      0    0    0  
   6   1   884   2950  187  254  162  306 942M   3G   3G   2G   1G   6G ttsssrkg923      0      0    280      5      0      1      0       2    0    0    0    0 1762    0    0    0  17184 644445      0      0    0    0  
   7   1   872   3375  140  261  280  191 942M   3G   3G   2G   1G   6G ttsssrkg923      0      0    220      3      0      1      0       1    0    0    0    0 1762    0    0    0  17184 644445      0      0    0    0  
   7   0   859   2858  203  234  228  213 942M   3G   3G   2G   1G   6G ttsssrkg923    128      1      0      0      0      2      0       2    0    0    0    0 1762    0    0    0  17184 644445      0      0    0    0  
   7   1   885   3346  249  213  219  230 941M   3G   3G   2G   1G   6G ttsssrkg923      0      0      0      0      0      0      0       0    0    0    0    0 1762    0    0    0  17184 644445      0      0    0    0  
   5   0   787   2659  219  153  180  232 941M   3G   3G   2G   1G   6G ttsssrkg923      0      0     68      2      0      0      0       0    0    0    0    0 1762    0    0    0  17184 644445      0      0    0    0  
   8   1   937   3264  217  248  246  256 941M   3G   3G   2G   1G   6G ttsssrkg923      0      0      0      0      0      4      1       4    0    0    0    0 1762    0    0    0  17184 644445      0      0    0    0  
   7   1   908   3463  171  260  264  215 941M   3G   3G   2G   1G   6G ttsssrkg923      0      0    360     37      0      3      0       1    0    0    0    0 1762    0    0    0  17184 644445      0      0    0    0  
   7   1   845   2850  188  246  214  195 941M   3G   3G   2G   1G   6G ttsssrkg923      0      0      0      0      0      0      0       0    0    0    0    0 1762    0    0    0  17184 644445      0      0    0    0  
   6   0   806   3168  219  247  197  143 941M   3G   3G   2G   1G   6G ttsssrkg923      0      0      0      0      0      0      0       0    0    0    0    0 1762    0    0    0  17184 644445      0      0    0    0  
   7   0   880   2920  221  225  243  191 941M   3G   3G   2G   1G   6G ttsssrkg923      0      0    256      5      0      4      0       5    0    0    0    0 1762    0    0    0  17184 644446      0      0    0    0  
   6   1   840   2953  198  271  224  149 941M   3G   3G   2G   1G   6G ttsssrkg923      0      0     20      2      0      0      0       0    0    0    0    0 1762    0    0    0  17184 644445      0      0    0    0 

Anda juga dapat menggunakan perintah collectl dengan opsi –top seperti yang ditunjukkan di bawah ini:

collectl --top

Output:

# TOP PROCESSES sorted by time (counters are /sec) 01:22:37
# PID  User     PR  PPID THRD S   VSZ   RSS CP  SysT  UsrT Pct  AccuTime  RKB  WKB MajF MinF Command
 2257  linuxid    20   491    1 S    1G  143M  3  0.01  0.16  17  01:52.14    0    0    0    0 /usr/bin/mplayer  
 2791  linuxid    20  2117    0 R   68M   28M  1  0.01  0.08   9  00:00.56    0    0    0    2 /usr/bin/perl  
 1024  root     20   996    1 S  402M  196M  0  0.02  0.02   4  40:23.01    0    0    0    0 /usr/lib/xorg/Xorg  
 1735  linuxid    20  1712    8 S    3G  145M  3  0.01  0.02   3  40:50.11    0    0    0    0 kwin_x11  
 2112  linuxid    20  1745    2 S  666M   71M  2  0.01  0.01   2  00:04.46    0    0    0    0 /usr/bin/konsole  
32095  linuxid    20 12627   11 S    4G  136M  3  0.01  0.01   2  00:13.31    0    0    0    1 /opt/google/chrome/chrome  
  491  linuxid    20  1687    3 S  727M   70M  2  0.00  0.01   1  00:32.40    0    0    0    0 /usr/bin/smplayer  
 1204  root     RT     2    0 S     0     0  1  0.01  0.00   1  16:49.88    0    0    0    0 irq/130-nvidia  
 2259  linuxid    20 14743   24 S    2G  158M  0  0.00  0.01   1  00:17.82    0    0    0    1 /usr/lib/firefox/firefox  
12613  linuxid    20  1745   28 S    1G  464M  0  0.00  0.01   1  32:45.95    0    0    0    0 /opt/google/chrome/chrome  
13059  linuxid    20 12627   14 S    8G  194M  1  0.00  0.01   1  03:13.19    0    0    0    3 /opt/google/chrome/chrome  
14805  linuxid    20 14743   29 S    2G  279M  3  0.01  0.00   1  04:35.76    0    0    0    0 /usr/lib/firefox/firefox  
14842  linuxid    20 14743   28 S    2G  314M  3  0.00  0.01   1  02:42.34    0    0    0    0 /usr/lib/firefox/firefox  
22268  linuxid    20     1    0 S   29M   12M  0  0.00  0.01   1  01:53.95    0    0    0    0 /opt/wine-stable/bin/wineserver  
24582  linuxid    20 12627   11 S    4G  163M  0  0.00  0.01   1  01:32.96    0    0    0    0 /opt/google/chrome/chrome  
26178  linuxid    20 14743   29 S    3G  311M  0  0.00  0.01   1  02:34.64    0    0    0    1 /usr/lib/firefox/firefox  
26416  linuxid    20 12627   13 S    8G  237M  3  0.00  0.01   1  02:45.15    0    0    0    4 /opt/google/chrome/chrome  
    1  root     20     0    0 S  220M    9M  1  0.00  0.00   0  00:04.64    0    0    0    0 /sbin/init  
    2  root     20     0    0 S     0     0  3  0.00  0.00   0  00:00.02    0    0    0    0 kthreadd  
    4  root      0     2    0 I     0     0  0  0.00  0.00   0  00:00.00    0    0    0    0 kworker/0:0H  
    6  root      0     2    0 I     0     0  0  0.00  0.00   0  00:00.00    0    0    0    0 mm_percpu_wq  
    7  root     20     2    0 S     0     0  0  0.00  0.00   0  00:00.39    0    0    0    0 ksoftirqd/0 

Monitor CPU, Memori dan Penggunaan Disk

Anda dapat memantau penggunaan CPU dengan menjalankan opsi collectl dengan -sc:

collectl -sc

Output:

#<--------CPU-------->
#cpu sys inter  ctxsw 
  13   6  1045   4635 
  13   5  1058   4631 
   7   1   858   3009 
  10   3   954   3897 
   7   1   881   3528 
  14   3  1068   4465 
   6   0   861   2866 
  17   5  1097   4289 
  16   4  1087   4409 
  15   5  1027   4173 
   9   1  1103   2988 
  11   3   947   3475 
   8   2   910   3001 
  11   1  1009   3926 
   8   1   881   3399 
 

Anda juga dapat melihat informasi detail penggunaan CPU dengan perintah berikut:

collectl -sC

Output:

waiting for 1 second sample...

# SINGLE CPU STATISTICS
#   Cpu  User Nice  Sys Wait IRQ  Soft Steal Guest NiceG Idle
      0     2    0    2    0    0    0     0     0     0   95
      1     3    0    1    0    0    0     0     0     0   95
      2     3    0    1    0    0    0     0     0     0   94
      3    12    0    1    0    0    0     0     0     0   86
      0     5    0    0    0    0    0     0     0     0   94
      1     3    0    1    0    0    0     0     0     0   95
      2     9    0    1    9    0    0     0     0     0   80
      3     7    0    2    0    0    0     0     0     0   91
      0     2    0    2    0    0    0     0     0     0   96
      1     4    0    2    0    0    0     0     0     0   94
      2    14    0    0    0    0    0     0     0     0   85
      3     2    0    0    0    0    0     0     0     0   97
      0    14    0    2    0    0    0     0     0     0   84
      1     4    0    1    0    0    0     0     0     0   94
      2     4    0    1    1    0    0     0     0     0   93
      3    10    0    2    0    0    0     0     0     0   88
      0     6    0    2    0    0    0     0     0     0   91
      1     6    0    1    1    0    0     0     0     0   92
      2    14    0    1    2    0    0     0     0     0   82

Untuk memantau penggunaan memori sistem Anda, jalankan perintah berikut:

collectl -sm

Output:

#<-----------Memory----------->
#Free Buff Cach Inac Slab  Map  
 978M   3G   3G   2G   1G   6G  
 978M   3G   3G   2G   1G   6G  
 979M   3G   3G   2G   1G   6G  
 979M   3G   3G   2G   1G   6G  
 979M   3G   3G   2G   1G   6G  
 979M   3G   3G   2G   1G   6G  
 978M   3G   3G   2G   1G   6G  
 978M   3G   3G   2G   1G   6G  
 978M   3G   3G   2G   1G   6G 

Monitor penggunaan memori dengan informasi detail dengan perintah berikut:

collectl -sM

Output:

waiting for 1 second sample...

# MEMORY STATISTICS 
# Node    Total     Used     Free     Slab   Mapped     Anon    AnonH   Locked    Inact HitPct
     0   15999M   15025M  997968K    1672M    1239M    5590M        0        0    3074M 100.00
     0   15999M   15023M     976M    1672M    1239M    5588M        0        0    3074M 100.00
     0   15999M   15023M     976M    1672M    1239M    5588M        0        0    3074M 100.00
     0   15999M   15023M     976M    1672M    1239M    5588M        0        0    3074M 100.00
     0   15999M   15023M     976M    1672M    1239M    5588M        0        0    3074M 100.00
     0   15999M   15023M     976M    1672M    1239M    5588M        0        0    3074M 100.00
     0   15999M   15023M  999816K    1672M    1239M    5588M        0        0    3074M 100.00
     0   15999M   15023M  999724K    1672M    1239M    5589M        0        0    3075M 100.00
     0   15999M   15023M  999584K    1672M    1239M    5589M        0        0    3075M 100.00
     0   15999M   15023M  999468K    1672M    1239M    5589M        0        0    3075M 100.00

Anda dapat memantau penggunaan disk dengan perintah berikut:

collectl -sd

Output:

waiting for 1 second sample...
#<----------Disks----------->
#KBRead  Reads KBWrit Writes  
      0      0      0      0  
      0      0     64      3  
    128      1      0      0  
      0      0    836     39  
      0      0      4      1  
      0      0      0      0  
      0      0    224      3  
      0      0      0      0  
      0      0    240     35  
    128      1      0      0  
      0      0    300     32  
      0      0      0      0

Pantau penggunaan disk dengan informasi detail dengan perintah berikut:

collectl -sD

Output:

waiting for 1 second sample...
# DISK STATISTICS (/sec)
#          <---------reads---------------><---------writes--------------><--------averages--------> Pct
#Name       KBytes Merged  IOs Size  Wait  KBytes Merged  IOs Size  Wait  RWSize  QLen  Wait SvcTim Util
sda              0      0    0    0     0       0      0    0    0     0       0     0     0      0    0
sdb              0      0    0    0     0       0      0    0    0     0       0     0     0      0    0
sdc              0      0    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      0    0
sdb              0      0    0    0     0       0      0    0    0     0       0     0     0      0    0
sdc              0      0    0    0     0       0      0    0    0     0       0     0     0      0    0
sda              0      0    0    0     0     252     10    5   50    10      50     1    10     10    5
sdb              0      0    0    0     0       0      0    0    0     0       0     0     0      0    0
sdc              0      0    0    0     0       0      0    0    0     0       0     0     0      0    0
sda              0      0    0    0     0     120     12    4   30    17      30     1    17     17    6
sdb              0      0    0    0     0       0      0    0    0     0       0     0     0      0    0

Monitor CPU, Memory dan Disk Bersamaan

Anda dapat memantau penggunaan CPU, Memori dan Disk dengan menjalankan perintah berikut :

collectl -scmd

Output:

waiting for 1 second sample...
#<--------CPU--------><-----------Memory-----------><----------Disks----------->
#cpu sys inter  ctxsw Free Buff Cach Inac Slab  Map KBRead  Reads KBWrit Writes  
   8   1   856   3239 955M   3G   3G   2G   1G   6G      0      0      0      0  
   6   1   881   3546 955M   3G   3G   2G   1G   6G     12      1    912     38  
   8   1   899   3060 955M   3G   3G   2G   1G   6G      0      0      0      0  
   6   0   808   2676 955M   3G   3G   2G   1G   6G    128      1      0      0  
   6   0   864   2895 955M   3G   3G   2G   1G   6G      0      0    272      4  
   7   1   861   3344 954M   3G   3G   2G   1G   6G      0      0    240      6  
   8   1   920   3482 954M   3G   3G   2G   1G   6G      0      0    316     41  
   6   1   821   2723 954M   3G   3G   2G   1G   6G      0      0      0      0  
   9   3   993   3937 954M   3G   3G   2G   1G   6G      0      0     24      1  
   7   1   881   2763 954M   3G   3G   2G   1G   6G      0      0      0      0  
   9   1  1333   3967 969M   3G   3G   2G   1G   6G      0      0    440     41 

 

Kesimpulan

Pada artikel di atas, kami  telah memberikan gambaran singkat tentang collectl. Collectl hadir dengan banyak opsi yang memudahkan Anda memonitor sistem Linux Anda.