Well, kali ini EYD coba membuat skrip yang mudah-mudahan berguna untuk menjaga load mysql process tetap stabil dan meminimalisir kendala yang sering ditemukan pada server hosting, salah satunya yakni “Too Many Connection” saat mengakses sebuah situs. Skrip ini cukup sederhana hanya menggunakan bash scripting, EYD coba di environment server hosting berbasis Debian.
Berikut skrip yang perlu dibuat, beri nama eydautokiller.sh simpan pada direktori /root/bin/eydautokiller.sh
file1=/tmp/eydfullprocess.txt
file2=/tmp/eydprocessid.txt
QRY1=$(/usr/bin/mysql -e “SELECT db,time,command,state,info FROM INFORMATION_SCHEMA.PROCESSLIST WHERE TIME > 500 INTO OUTFILE ‘$file1′”)
QRY2=$(/usr/bin/mysql -e “SELECT CONCAT(ID,’;’) FROM INFORMATION_SCHEMA.PROCESSLIST WHERE TIME > 500 INTO OUTFILE ‘$file2′”)for f in `cat $file2`; do mysql -e “KILL $f”; done
if [ `ls -l $file1 | awk ‘{print $5}’` -eq 0 ]
then
>/dev/null
else
cat $file1 |mail -s “MYSQL Processlist” admin@example.com
firm -rf $file1 $file2
Lalu skrip tersebut bisa dijalankan otomatis setiap 15 menit sekali menggunakan Cron.
*/15 * * * * sh /root/bin/eydautokiller.sh
Dengan skrip ini, maka skrip akan mengkill secara otomatis pid query user database MySQL yang memiliki time query di atas 500. Say goodbye to “Too Many Connection”.
Silahkan dikomentari dan semoga bermanfaat.
Mas Endrik…salam kenal yah. Ternyata Bro di MWN…dulu saya pernah hosting di MWN…memuaskan. Numpang untuk belajar linux juga yah Bro Endrik.
salam kenal juga mas, hayuk sama-sama belajar kita, di blog ini sudah ada beberapa tutorial/artikel Linux juga, monggo dibrowse dulu