Beranda Internet dan Web Kloxo-MR Kenali Penyebab Load VPS Tinggi menggunakan TOP

Kenali Penyebab Load VPS Tinggi menggunakan TOP

3
Kenali Penyebab Load VPS Tinggi menggunakan TOP

Pertama kali belajar vps, salah satu tools andalan saya untuk memonitor kinerja vps adalah aplikasi yang bernama TOP.

Beberapa provider CPU sangat membenci load yang tinggi. Bila saja pemakaian cpu dalam 15 menit lebih dari 3, mereka tidak akan segan untuk mensuspend akun anda dengan alasan CPU Abuse.

Memang ada beberapa provider yang memberi “sedikit” kelonggaran. Artinya mereka hanya akan men suspend vps anda bila load (15 menit) lebih dari 5 bahkan 7. jadi selama load anda berada di bawah 7 atau 5 atau 3 (tergantung provider), maka vps anda aman dari suspension.

Oleh karena itulah kenapa tools yang bernama TOP ini sangat membantu untuk mengamankan vps saya dari gangguan “admin” hehe.

Awalnya saya mengira nilai Load Average, Mem Used Free Swap Cached dan %CPU sudah lebih dari cukup untuk memberi informasi bahwa ada sesuatu yang salah yang terjadi pada VPS saya. Ternyata itu benar, dan itu juga salah #Loh

Benar, dalam arti saat Load Average meningkat, kita bisa melihat Task mana yang menggunakan %CPU tinggi pada saat itu.  Dengan informasi ini saya menilai, tentu ada sesuatu yang salah dengan Task tersebut.

Top untuk monitor kinerja dan load vps

Seperti contoh gambar di atas, load average terbaca 3.03 (<1 menit) 2.83 (5 menit) 2.33 (15 menit) artinya dalam 1 menit saya memakai cpu sebanyak 3.03 dan rata2 dalam 5 menit saya memakai cpu 2.83 dan seterusnya.

Langkah untuk mengatasi load ini tentu saya arahkan ke mysql yang saat itu terlihat menggunakan 23.5% CPU. Padahal itu benar dan itu juga salah.

Kenapa Salah? Yang harus anda cermati dari top bukan cuma load memory dan %cpu, tapi baris ke 3 yang berisi info CPU(s)

Cpu(s):  9.3%us,  3.5%sy,  0.0%ni, 54.6%id,  22.2%wa,  0.0%hi,  0.0%si,  9.4%st

%us adalah penggunaan CPU oleh Task yang di jalankan user, seperti misal nginx, mysql, apache, php-fpm dll. Nilai paling rendah adalah 0% (sedikit pemakaian), dan paling tinggi 100% (cpu abuse by task)

%sy adalah penggunaan CPU oleh kernel (operating system linux). Perhitungan tinggi rendah sama dengan %us di atas

%ni adalah jumlah penggunaan cpu oleh task yang di jalankan user, yang priority nya di set manual, misal seperti gambar di bawah ini.

nginx worker priority dan cpu affinity %id adalah nilai “idle” cpu. Semakin tinggi nilai ini (100%) menandakan CPU tidak sedang digunakan dan tersedia untuk dimanfaatkan kerja rodi. Semakin rendah nilainya (0%) menandakan bahwa CPU sedang bekerja keras dan CPU (mungkin) tidak mampu melakukan proses selanjutnya secepat yang anda mau.

Skenario:
1. Nilai %sy yang tinggi mengindikasikan adanya masalah dengan config kernel dan driver anda. Untuk melakukan tunning dan perbaikan masalah ini mungkin membutuhkan googling yang sangat dalam dan lama.

2.Nilai %sy yang tinggi namun nilai %us yang rendah mengindikasikan bahwa penggunaan server anda lebih ke arah file server, database server yang sifatnya menyuplai data (tanpa proses).

3.Nilai %us yang tinggi menandakan adanya proses berlebih yang dikerjakan oleh CPU, seperti misal proses compile PHP, Apache dll.

Hal yang terpenting yang harus anda cermati adalah nilai %wa dan %st

%wa adalah waktu tunggu (iowait) proses IO (input output) ke file/harddisk.

%st adalah steal time, menandakan kesibukan cpu pada node vps anda (node vps biasanya terdiri atas 1 rack server yang berisi ratusan vps yang berjalan dalam mode vm – virtual machine, dan vps anda adalah salah satunya).

From ibm.com:

Steal time is the percentage of time a virtual CPU waits for a real CPU while the hypervisor is servicing another virtual processor.

Skenario:
1. Hal yang pertama kali harus anda amati saat melihat LOAD AVERAGE YANG TINGGI adalah nilai %wa. Bila Load Average anda tinggi dan %wa juga tinggi, maka ini berarti bahwa ada kesibukan baca dan tulis (IO) ke file/harddisk yang menyebabkan CPU terpaksa “harus” menunggu proses baca dan tulis selesai sebelum melanjutkan ke proses berikutnya.

Semakin tinggi nilai %wa mengindikasikan bahwa kecepatan IO pada vps anda sangatlah rendah. Bila hal ini terjadi saran saya adalah: open ticket, kirim ke support, sertakan bukti screenshot speed IO dan mintalah bantuan untuk menormalkan speed IO di vps anda.

Clue: Anda bisa mencek secara manual kecepatan IO menggunakan perintah:
dd if=/dev/zero of=iotest bs=64k count=16k conv=fdatasync && rm -rf iotest

dd untuk melihat kecepatan IO harddisk vps

Vps anda bisa dikatakan aman bila memiliki speed di atas 80MB/s. saat menyentuh angka <50MB/s kemungkinan besar web server anda akan mengalami high cpu load, crash, dan susah di akses (pengalaman pribadi).

Beberapa provider yang menggunakan Harddisk dengan tipe SSD biasanya mampu menyediakan kecepatan IO di atas 300MB/s (up to 1GB/s++)

2. %wa yang tinggi bisa diatasi dengan mematikan log (access/error log apache/nginx), memperbesar buffer, cache,  memindah temporary file ke ram (tmpfs) yang tujuannya meminimalisir penggunaan IO ke harddisk.

3. %id rendah sedangkan %st tinggi, mengindikasikan bahwa anda menggunakan cpu secara berlebihan. Artinya ada task task yang harus anda amati %CPU nya (seperti kasus saya di gambar 1 terlihat mysqld yang menggunakan %cpu tinggi). Yang kemudian mungkin task tersebut harus anda optimisasi lebih lanjut

4. %id yang tinggi sementara %st yang tinggi menandakan bahwa provider anda menjual vps secara berlebihan di 1 node (oversold). Tidak ada jalan lain kecuali mengirim ticket ke support untuk request pindah node atau bahkan anda harus pindah ke provider vps yang lainnya

steal_scenarios

5. Bila nilai %st diatas 10% dan berlangsung lebih dari 20 menit, maka akan berdampak ke performa vps anda yang terpaksa berjalan lebih lambat dari yang seharusnya. Coba shutdown vps dan cek ulang. Bila masih berlanjut, maka kemungkinan besar anda harus pindah provider dan atau harus membeli vps dengan cpu yang lebih kuat.

Orang bijak berkata, semakin banyak informasi yang digunakan, semakin akurat penilaian yang dihasilkan.

Referensi:

Semoga Bermanfaat.

 

3 KOMENTAR

TINGGALKAN KOMENTAR

Silakan masukkan komentar anda!
Silakan masukkan nama Anda di sini

Situs ini menggunakan Akismet untuk mengurangi spam. Pelajari bagaimana data komentar Anda diproses.