Kenapa VPS Saya Akhir-Akhir Ini Sering Overload CPU?


Status
Not open for further replies.

ryandipranata

Poster 1.0
Bisa Om, jadi tergantung kebijkan providernya juga (berapa % mereka tampung dalam 1 dedicated server) dan hardware server yg dipakai



Belum tentu efect dari pengguna lain karena banyak penyebabnya, oleh sebab itu dianalisa satu per satu mulai dari sisi VPS yg Tuan gunakan coba dicek load cpunya jika load cpunya tinggi dicoba cek service apa yg menggunakan load cpunya tinggi dan jika sdh ketemu lanjut ditracert sesuai hasil sebelumnya.
Dan paralel jg koordinasi ke hoster terkait agar mereka bisa bantu dan memberikan informasi dari sisi servernya juga (termasuk gangguan overload dari pengguna lain juga).


CMIIW

Oh begitu baru tau saya mas
Makasih mas pencerahannya, saya coba analisa juga peyebabnya apa sebenarnya
 

arissety

Apprentice 1.0
> Oke mas makasih. Nanti saya coba.
> Btw, itu su_php fungsinya buat apa sebenarnya?

su_php, itu modul apache yg bertujuan supaya apache running dari masing2 user di cpanel.
Tuuannya supaya user cpanel lain tidak bisa macem2 sama source code user cpanel lainnya.

Tapi mending disolved dulu yg problem MySQL nya dulu.
Klo yg MySQL sudah solved, dan masih defunct, baru masuk ke su_pho
 

ryandipranata

Poster 1.0
> WordPress database error MySQL server has gone away for query

Ini berarti mysqlnya trouble, dan mungkin mati.

a. Cek apakah mysqlnya masih jalan?
b. Tuan pakai InnoDB g?
c. Jalankan SQL ini, lalu copast outpunya disini: show variables like '%buffer%';

Iya tadi MySQL nya sempet mati karena Load CPU yang sangat tinggi, tapi sekarang uda up lagi.
Ini hasilnya mas:

Code:
Variable_name     Value    
bulk_insert_buffer_size     8388608
innodb_buffer_pool_instances     1
innodb_buffer_pool_size     28311552
innodb_change_buffering     all
innodb_log_buffer_size     8388608
join_buffer_size     2097152
key_buffer_size     1396703232
myisam_sort_buffer_size     8388608
net_buffer_length     16384
preload_buffer_size     32768
read_buffer_size     131072
read_rnd_buffer_size     262144
sort_buffer_size     2097152
sql_buffer_result     OFF
 

arissety

Apprentice 1.0
> Iya tadi MySQL nya sempet mati karena Load CPU yang sangat tinggi, tapi sekarang uda up lagi.

Oh berarti error mysql gone nya tadi karena mysql mati,
Dan mysql mati karena CPU tinggi
Dan CPU tinggi karena defunct php process

Kira2 begini ndak?


Berarti penyebab awal bukan mysql server nya yg mati, lalu terjadi defunct, lalu terjadi CPU tinggi. Bukan kan?

> Ini hasilnya mas:

innodb_buffer_pool_size = 27MB, jika memory yg dialokasikan utk mysql cukup besar, sebaiknya ditambah.
karena ini sangat memengaruhi CPU usage juga. Kasih aja angka 218MB, jika mmg ada sisa.

Tempo hari problem di VPS saya high CPU juga karena ini. Sekarang saya naikkan mjd 512MB.
Oiya, untuk web yg sering insert dalam jumlah ukuran data besar, kandidat variable yg perlu dituning adalah:
innodb_log_buffer_size dan
innodb_log_size
 

arissety

Apprentice 1.0
Jadi menurut saya, ada 2 skenario Tuan.

Pertama:

Terjadi defunct php process,
Lalu terjadi CPU tinggi,
Lalu mysql mati karena CPU tinggi,
Lalu terjadi error mysql gone yg banyak jumlahnya



Kedua:

Hit web Tuan sangat tinggi,
Lalu terjadi CPU tinggi,
Lalu Mysql server nya mati,
Lalu terjadi error mysql gone,
Lalu terjadi defunct,


Bener g?
 

ryandipranata

Poster 1.0
Jadi menurut saya, ada 2 skenario Tuan.

Pertama:

Terjadi defunct php process,
Lalu terjadi CPU tinggi,
Lalu mysql mati karena CPU tinggi,
Lalu terjadi error mysql gone yg banyak jumlahnya



Kedua:

Hit web Tuan sangat tinggi,
Lalu terjadi CPU tinggi,
Lalu Mysql server nya mati,
Lalu terjadi error mysql gone,
Lalu terjadi defunct,


Bener g?

Mungkin seperti itu gambarannya kurang lebihnya mas.
Jadi yang pertama saya harus ganti innodb_buffer_pool_size ya mas?
 

arissety

Apprentice 1.0
Mungkin seperti itu gambarannya kurang lebihnya mas.
Jadi yang pertama saya harus ganti innodb_buffer_pool_size ya mas?

Berarti Tuan setuju dengan skenario kedua ya.

Berarti tinggal rubah nilai (atau tambahkan) variabel innodb_buffer_pool_size di /etc/my.cnf
Pada sectiom [mysqld].

Contoh:

innodb_buffer_pool_size = 128M


Btw, script php nya besar besar g?
Tuan pakai framework apa?
 

ryandipranata

Poster 1.0
Berarti Tuan setuju dengan skenario kedua ya.

Berarti tinggal rubah nilai (atau tambahkan) variabel innodb_buffer_pool_size di /etc/my.cnf
Pada sectiom [mysqld].

Contoh:

innodb_buffer_pool_size = 128M


Btw, script php nya besar besar g?
Tuan pakai framework apa?

Saya pakai wordpress Tuan, isinya cuma artikel aja nggak besar
Cara ganti nya seperti ini betul nggak ya:
Code:
[LIST=1]
[*]Load Terminal.
[*]Type cd /etc/.
[*]sudo vi my.cnf.
[*]This file should already exist (if not please use sudo find / -name 'my.cnf' 2>1 - this will hide the errors and only report the successfile file location).
[*]Using vi(m) find the line innodb_buffer_pool_size, press i to start making changes.
[*]When finished, press esc, shift+colon and type wq.
[/LIST]

Apa perlu ada yang di restart?
Soalnya saya cek di phpmyadmin show variables like '%buffer%'; masih belum berubah
 

arissety

Apprentice 1.0
Tuan pakai wordpress ya.

"Tips" selanjutnya untuk mengurangi CPU load,
yaitu dengan mencegah PHP melakukan parsing,
setiap kali ada request ke webserver terhadap script PHP tesebut.

Bayangkan Tuan, HIT web Tuan kan 3K/day. Itu berarti sebanya itu pula parsing dilakukan.

Nah, Tuan harus install, apa yg namanya modul php_apc.
Ini bisa meningkatkan performance web 2x lipat, karena parsing cukup dilakukan sekali saja.
Tentu saja ini karena CPU nya drop, makannya performance naik 2x lipat.

Nah syarat mau install php_apc, Tuan harus hilangkan su_php,
karena php_apc g bisa jalan jika disitu ada su_php.
 

arissety

Apprentice 1.0
Saya pakai wordpress Tuan, isinya cuma artikel aja nggak besar
Cara ganti nya seperti ini betul nggak ya:
Code:
[LIST=1]
[*]Load Terminal.
[*]Type cd /etc/.
[*]sudo vi my.cnf.
[*]This file should already exist (if not please use sudo find / -name 'my.cnf' 2>1 - this will hide the errors and only report the successfile file location).
[*]Using vi(m) find the line innodb_buffer_pool_size, press i to start making changes.
[*]When finished, press esc, shift+colon and type wq.
[/LIST]

Apa perlu ada yang di restart?
Soalnya saya cek di phpmyadmin show variables like '%buffer%'; masih belum berubah

Iya perlu restart.
Tapi sepertinya, lokasi filenya tidak ditemukan.
Coba Tuan tanyakan lokasi konfiguarsi file mysql nya ada di mana, ke adminnya.

Dari yg ana lihat, Tuan blm familiar dgn konfigurasi mysql.
Nah sebaiknya Tuan minta admin yg melakukannya.
Soalnya ini perlu restart server segala.
Dan untuk mySQL versi 5.1, itu kadang perlu remove file ib_logfile0 dan ib_logfile1
 
Status
Not open for further replies.

Top