Lagi asik ngoprek, saya mendapatkan laporan dari rekan kerja bahwasanya salah satu server mengalami hang, lalu saya cek beratnya minta ampun.
telusuri satu-satu load tertinggi berada pada mysql, lalu saya cek query mengarah ke eximstats
apa itu eximstats? eximstats berfungsi untuk meng-generate statistik dari log exim
biasanya eximstats ini menjadi crash disebabkan banyaknya pengiriman spam dari server. lalu saya coba lsof.
lsof sendiri berarti List Open File, yang mana lsof berfungsi untuk mengetahui file mana yang terbuka pada suatu proses.
Table eximstats is marked as crashed
1 |
lsof -i | grep smtp |
lalu hasil dari pengecekan seperti dibawah ini
1 2 3 4 |
root@server [~]# lsof -i | grep smtp exim 30461 mailnull 10u IPv4 1824930315 0t0 TCP server.xxx.net:34524->parked-mtc-a.evip.aol.com:smtp (SYN_SENT) exim 31865 mailnull 3u IPv6 1801828064 0t0 TCP *:smtp (LISTEN) exim 31865 mailnull 4u IPv4 1801828065 0t0 TCP *:smtp (LISTEN) |
lalu bagaimana mengatasi ini?
perlu diingat sekarang kita sedang bermain dengan 2 service (mysql dan exim) yang berjalan pada 1 server yang sama.
hal pertama yang harus kita lakukan adalah mengecek error log dan mendapatkan ip address yang melakukan aktifitas spam untuk diblokir.
setelah itu, baru kita dapat melakukan optimize terhadap server tersebut, caranya adalah
jika anda menggunakan whm/cpanel. silahkan disable eximstats pada whm >> Service Manager
login ke mysql
1 2 3 |
mysql> use eximstats ; Database changed mysql> show tables ; |
lakukan truncate kesemua table eximstats, lalu apa itu truncate?
Pengertian dari truncate Table itu sendiri adalah menghapus semua isi dari suatu table database. lebih spesifik, kita menghapus table seluruh isi dan seluruh strukturnya, dan mengembalikan lagi struktur table tersebut seperti semula.
1 2 |
mysql> truncate table smtp; mysql> truncate table send; and more |
cek hasil truncate table eximstats
1 2 3 4 5 6 |
root@server [~]# mysqlcheck -c eximstats eximstats.defers OK eximstats.failures OK eximstats.sends OK eximstats.smtp OK root@jupiter [~]# |
atau anda dapat mengecek dengan perintah,
1 |
root@server [~]# myisamchk -r /var/lib/mysql/eximstats/TABLENAME.MYI |
opsi -r sendiri berarti recover, untuk perintah lengkapnya myisamchk anda bisa menggunakan perintah
1 |
root@server [~]# myisamchk --help |
lalu restart service mysql and exim
Selamat berexplorasi 🙂
hosting corporate
January 5, 2018terimakasih penjelasannya