Masalah MySQL service sering mati pada Cloud DigitalOcean

DigitalOcean Logo
DigitalOcean Logo

Beberapa bulan terakhir saya memutuskan untuk menggunakan layanan cloud server dari DigitalOcean untuk mengakomodir semua service, baik website maupun system management yang saya gunakan di kantor.

Butuh beberapa hari untuk proses migrasi data dari layanan sebelumnya (shared hosting) dan berjalan cukup baik, sampai saat ini kami sudah menggunakan 3 server (droplet) untuk menampung semua kebutuhan. Untuk menghemat operational cost 1 server saya bisa host maksimal  60-an website, meskipun itu sangat tidak dianjurkan. Karena tidak semua website memiliki traffic yang cukup tinggi, jadi saya kira tidak ada masalah menampung sejumlah website tersebut dalam 1 server secara bersamaan.

Pada awalnya tidak ada masalah, namun beberapa minggu kemudian mulai sering down. Kebanyakan terjadi akibat MySQL service nya mati.

WordPress Database Error
WordPress Database Error

Untuk Control Panel nya saya menggunakan Webuzo, karena  lengkap dan cukup mudah untuk konfigurasinya. Setelah dicek ternyata memang benar MySQL service nya yang mati.

Service MySQL Webuzo
Service MySQL Webuzo

Penasaran kira-kira yang bikin service nya mati sendiri saya coba cek log nya, untuk webuzo log mysqld nya terletak di /var/log/mysqld.log

140416 11:37:24 mysqld_safe Number of processes running now: 0
140416 11:37:24 mysqld_safe mysqld restarted
140416 11:37:24 [Note] Plugin 'FEDERATED' is disabled.
140416 11:37:24 InnoDB: The InnoDB memory heap is disabled
140416 11:37:24 InnoDB: Mutexes and rw_locks use GCC atomic builtins
140416 11:37:24 InnoDB: Compressed tables use zlib 1.2.3
140416 11:37:24 InnoDB: Using Linux native AIO
140416 11:37:24 InnoDB: Initializing buffer pool, size = 128.0M
InnoDB: mmap(137363456 bytes) failed; errno 12
140416 11:37:24 InnoDB: Completed initialization of buffer pool
140416 11:37:24 InnoDB: Fatal error: cannot allocate memory for the buffer pool
140416 11:37:24 [ERROR] Plugin 'InnoDB' init function returned error.
140416 11:37:24 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
140416 11:37:24 [ERROR] Unknown/unsupported storage engine: InnoDB
140416 11:37:24 [ERROR] Aborting

Setelah diperhatikan baris Fatal error: cannot allocate memory for the buffer pool baru sadar kalau ternyata memory (RAM) nya sudah penuh, dalam kondisi ini ada beberapa opsi yang bisa digunakan untuk mengatasi permasalahan tersebut.

Upgrade Plan

Yaah, action paling mudahnya yaitu tinggal upgrage plan untuk droplet bersangkutan, pilih upgrade untuk memory (RAM) nya saja. Penjelasan lebih detil nya mengenai harga dan spesifikasi plan lain dari DigitalOcean silakan kesini (recommended).

Tambah Ukuran SWAP

Jika opsi diatas dirasa cukup berat (cost), dengan menambahkan ukuran SWAP di OS (Linux) yang sudah terinstal juga bisa mengurangi tingkat crash mysql service. Tutorial lengkapnya silakan kesini.

Gunakan Monit

Monit adalah program yang berfungsi untuk memantau setiap service (yang didaftarkan) dengan kemampuan melakukan aksi jika terjadi sesuatu dengan service yang bersangkutan. Misalnya untuk service mysql, kita bisa menentukan pengaturan di monit jika suatu waktu service mysql mati maka monit dapat melakukan restart terhadap service mysql  secara otomatis. Untuk langkah install dan konfigurasi monit silakan kesini.

Comments

No comments yet. Why don’t you start the discussion?

Tinggalkan Balasan