Tuesday, January 19, 2016

Basic Profiling & Performance Analysis Tools di Linux dan Cara Menggunakannya

Profiling Tools adalah sebuah tools yang biasanya digunakan untuk mendapatkan informasi terkait performace pada sebuah perangkat yang kita gunakan. Ketika implementasi dalam sebuah project, aktifitas profiling menjadi begitu penting karna data yang didapatkan dari aktifitas tersebut dapat digunakan untuk bahan pengambilan keputusan apakah hardware tsb gagal atau tidak, apakah akan terjadi ekspansi atau tidak dan lain sebagainya.

Ada beberapa macam basic profiling tools di linux dan yang kali ini akan saya bahas yaitu adalah basic tools yang paling sering digunakan oleh sysadmin, antara lain adalah sebagai berikut.
  • top
  • free
  • vmstat
  • iostat
  • sar

1) TOP COMMAND
Command ini adalah salah satu command yang paling sering digunakan untuk mendapatkan informasi load server yang kita miliki. Selain caranya yang sederhana, informasi yang kita dapatkan juga bisa dibilang termasuk lengkap. Dibawah ini contoh-contoh penggunaan command top.

Display Basic Info



Dengan menggunakan command # top seperti gambar diatas, maka akan muncul informasi seperti task, memory, cpu, swap, zombie process, dsb.















Display Specific User
Gunakan top dengan option -u dan akan menampilkan specific user detail.










Highlight Running Process
Gunakan 'z' option setelah menggunakan command top, maka output yang dihasilkan akan membantu kamu mengindentifikasi process mana yang sedang berjalan.














Display Path Process
Gunakan 'c' option setelah menggunakan command top, maka output yang dihasilkan akan membantu kamu mengindentifikasi path direktori dari setiap process yang berjalan.










Mengganti Delay Interval 'Screen Refresh Interval' di Top
Secara default, ketika menggunakan top screen akan menampilkan kondisi terbaru setiap 3 detik. Namun apabila Anda ingin menggantinya menjadi tiap 1 detik atau sesuai keinginan maka gunakan option 'd' atau 's' untuk mengubahnya.
















Kill Running Process
Untuk menghentikan sebuah process yang sedang berjalan dari top, gunakan option 'k' lalu isi dengan PID yang ingin Anda kill.














Sort By CPU Utilisation
Gunakan tombol shift + P untuk mendisplay process bedasarkan sorting CPU Utilisation.














Sort By Memory Utilisation
Gunakan tombol shift + m untuk mendisplay process bedasarkan sorting Memory Utilisation.















2) FREE COMMAND
Free command memberikan informasi terkait physical memory yang tersedia dan sedang digunakan, termasuk informasi swap memory dengan buffer yang digunakan oleh kernel OS.

Display Basic Info
Display informasi physical memory dan swap memory yang digunakan oleh OS dalam satuan KB.






Display Dalam Satuan Bytes
Gunakan option '-b' untuk menampilkan dalam satuan bytes.





Display Dalam Satuan Kilobytes
Gunakan option '-k' untuk menampilkan dalam satuan kilobytes.





Display Dalam Satuan Megabytes
Gunakan option '-m' untuk menampilkan dalam satuan megabytes.





Display Dalam Satuan Gigabytes
Gunakan option '-g' untuk menampilkan dalam satuan gigabytes.





Display Low & High Memory Statistic
Gunakan option '-l' untuk menampilkan low & high memory statistic.







3) VMSTAT COMMAND
Salah satu tools yang paling powerful digunakan ketika troubleshoot dan juga profiling adalah vmstat. Command vmstat, iostat, dan sar masuk kedalam package sysstat dan untuk menginstall package tersebut bisa gunakan yum seperti gambar di bawah ini.




Ketika menggunakan command vmstat, kita dapat menggunakan 2 argument. Pertama adalah delay, kedua adalah counter. Delay adalah value dari detik antara output informasi yang ditampilkan, sedangkan Counter adalah berapa kali Anda ingin menampilkan informasi dengan vmstat ini.

Sebagai catatan, vmstat akan menampilkan informasi dalam satuan bytes secara default. Apabila menggunakan option '-S' maka memungkinkan kita mengganti format output dalam satuan KB, MB, MiB dengan -S k, -S m, -S M, dsb.

Contoh penggunaan vmstat untuk profiling dan performance analysis ialah seperti dibawah ini.

Listing Active & Inactive Memory
Pada contoh dibawah terdapat 6 kolom yaitu procs, memory, swap, io, system, cpu. Namun ketika melakukan listing active & inactive memory maka field yang paling penting diperhatikan adalah bagian dibawah memory dan bagian dibawah swap. 

Gunakan options '-a' seperti gambar dibawah ini.





Execute vmstat ‘X’ seconds dan ‘N’ number of times
Sebagai contoh, kita ingin menampilkan informasi dengan vmstat setiap 2 detik dan akan otomatis berhenti ketika mencapai interval ke-5.

Gunakan command #vmstat 2 5 seperti gambar dibawah ini.







Display Timestamps
Command vmstat dengan parameter '-t' akan menampilkan timestamps di setiap line yang di print.






Display Variasi Counter
Gunakan paramater '-s' untuk menampilkan summary dari variasi event counter dan memory statistic.
























Disks Statistic
Gunakan options '-d' untuk menampilkan seluruh disks statistik.





















Display Statistik Dalam Satuan Megabytes
Command vmstat akan menampilkan informasi dalam satuan megabytes dengan parameter -S dan M (Uppercase & Megabytes). Sebagai catatan, option ini ada karna by default vmstat menampilkan informasi dalam satuan kilobytes.







4) IOSTAT COMMAND
Command iostat digunakan untuk menampilkan informasi CPU statistik dan juga informasi Input/Output dari device, partisi, NFS, dsb.

Display CPU and I/O Statistik
Command iostat tanpa argumen akan menampilkan informasi kernel apa yang digunakan, informasi statistik CPU dan I/O dari semua partisi.






Display Hanya CPU Statistik 
Gunakan options '-c' apabila hanya ingin menampilkan statistik CPU saja.





Display Hanya Disk I/O Statistik
Gunakan options '-d' apabila hanya ingin menampilkan statistik I/O dari seluruh partisi.





Display Statistik Disk I/O dari Single Device
Secara default iostat akan menampilkan informasi dari seluruh partisi, apabila ingin di filter gunakan options '-p' dan ditambah dengan device name. Sebagai contoh, dibawah ini hanya menampilkan statistik I/O dari device SDA.








Display LVM Statistik
Gunakan options '-N' untuk menampilkan statistik I/O dari device LVM.

Notes : Karna di server saya belum ada lvm maka yg tampil hanya statistik dari device sda.


5) SAR COMMAND
Command sar (system activity reporter) adalah salah satu multi-purpose analysis tools yang merupakan bagian dari sysstat package. SAR dapat bekerja dalam 2 mode, yaitu : pertama, bisa dikombinasikan dengan cronjob. Kedua, bisa juga digunakan untuk mendapatkan data instant dari state di system yang kita miliki.
Selain itu SAR dapat digunakan untuk mencollect informasi seperti :
  1. Collective CPU usage
  2. Individual CPU statistics
  3. Memory used & available
  4. Swap space used & available
  5. Overall I/O activity system
  6. Individual device I/O activity
  7. Context switch statistics
  8. Run queue & load average data
  9. Network statistics
Dibawah ini contoh penggunaannya.

Collective CPU usage
Contoh dibawah ini, akan menampilkan informasi dengan sar setiap 2 detik dan akan otomatis berhenti ketika mencapai interval ke-3.






Individual CPU statistics
Contoh dibawah ini, menampilkan informasi CPU dari seluruh core dan single core (misal core ke-0) setiap 2 detik dan akan otomatis berhenti di interval ke-3.
  1. Menampilkan seluruh core statistik. Gunakan parameter ALL(seluruh CPU core), lalu second (2), lalu interval (3).
  2. Menampilkan statisik core ke-1 (core ke-0 dalam array). Gunakan parameter 0 (Core ke-1), lalu second (2), lalu interval (3).

Memory Used & Memory Available Statistik
Gunakan options '-r' dan akan menampilkan statistik memory yang sedang digunakan saat ini. Biasanya informasi yang paling sering digunakan adalah dari kolom 'kbmemfree' dan 'kbmemuses'.






Swap Space Used & Swap Available Statistik
Gunakan options '-S' dan akan menampilkan statistik swap used dan swap available yang sedang digunakan saat ini. Biasanya informasi yang paling sering digunakan adalah dari kolom 'kbswpused' dan '%swpused'






Overall I/O Activity System
Gunakan options '-b' dan akan menampilkan informasi I/O Statistik, field informasi yang akan ditampilkan antara lain.
  • tps – Transactions per second (termasuk keduanya read & write)
  • rtps – Read transactions per second
  • wtps – Write transactions per second
  • bread/s – Bytes read per second
  • bwrtn/s – Bytes written per second






Individual Device I/O Activity
Gunakan command '-d' untuk mengindentifikasi individual block devices (contoh : spesifik mounting point, LUN, partition, dsb).






Context Switch Statistics
Gunakan option '-w' dan akan menampilkan informasi total nomor process yang dibuat dalam 1 detik dan total nomor context switch per detik.






Run Queue & Load Average Data
Gunakan options '-q' dan akan menampilkan informasi running queue size dan load average data dalam 1 menit terakhir (ldavg-1), 5 menit (ldavg-5), dan 15 menit (ldavg-15).






Network Statistics Reports
Command sar dapat digunakan untuk menampilkan berbagai macam statistik informasi dari penggunaan network device di server kita. 
Format yang digunakan antara lain adalah seperti dibawah ini.



Keyword yang digunakan juga bervariasi, antara lain.
  • DEV – Displays network devices vital statistics for eth0, eth1, dsb.
  • EDEV – Display network device failure statistics
  • NFS – Displays NFS client activity
  • NFSD – Displays NFS server activity
  • SOCK – Displays sockets pada penggunaan IPv4
  • IP – Displays IPv4 network traffic
  • EIP – Displays IPv4 network errors
  • ICMP – Displays ICMPv4 network traffic
  • EICMP – Displays ICMPv4 network errors
  • TCP – Displays TCPv4 network traffic
  • ETCP – Displays TCPv4 network errors
  • UDP – Displays UDPv4 network traffic
  • SOCK6, IP6, EIP6, ICMP6, UDP6 are for IPv6
  • ALL – Displays semua informasi diatas.
Sebagai contoh yang paling sering digunakan adalah display informasi statistic dari interface network. Gunakan options '-n' dan keyword DEV.













Dan Alhamdullilah selesai juga! Lumayan panjang nulisnya sampe harus bersambung di hari ini dan kemudian di publish. Semoga bermanfaat buat yang membaca ya.

No comments:

Post a Comment