Mengendalikan proses WordPress HeartBeat API

Malam minggu kemarin saya dicurhati teman soal masalah hatinya eh… blog WordPress yang sering disuspend oleh web hostingnya karena CPU Usage yang tinggi. Kalau disebabkan karena traffic pengunjung tinggi rasanya tidak mungkin, belum sampai 100 per hari kok. Setelah itu saya lihat pluginnya masih default dan temanya saja masih Twenty Fifteen. Aneh kan?

Akhirnya saya dapatkan apa masalahnya saat membaca email forward dari teman yang berisi notifikasi suspensi dari web hosternya. Ternyata ada proses POST yang dijalankan dari /wp-admin/admin-ajax.php berulang kali setiap 1-2 detik. Ini yang membuat server hosting kewalahan. Karena jelas ini file dari WordPress maka perlu diagnosa lebih lanjut apa fungsinya.

Heartbeat (Flickr) / CC BY 2.0
Heartbeat (Duncan Johnston) / CC BY 2.0

Ternyata ini adalah fitur dari WordPress HeartBeat API yang ditambahkan sejak versi WordPress 3.6. Sesuai namanya fitur ini akan mengecek keadaan halaman yang sedang dibuka di dasbor adminnya setiap beberapa saat seperti denyut jantung. Jadi fungsi menyimpan revisi otomatis, apakah ada koneksi internet atau tidak saat mengedit posting, manajemen sesi pengguna, dan masih banyak lagi adalah dari sini. Jelas penting peranannya.

Solusinya? Paling mudah adalah mengubah kebiasaan, jangan membuka halaman dashboard atau editor posting WordPress terlalu lama karena ini akan memicu proses tadi, apalagi kalau anda membuka beberapa sekaligus. Bisa dibatasi hosting anda kalau CPU usagenya tinggi.

Alternatifnya? Kendalikan frekuensi update denyutnya dengan menginstall plugin HeartBeat Control.

wp-heartbeat-control

Saya anjurkan agar Control heartbeat locations diganti ke Allow only on post edit pages dan Override heartbeat frequency menjadi 15 seconds supaya tidak aktif di semua bagian WordPress juga tidak sering – sering dieksekusi.

Satu pemikiran pada “Mengendalikan proses WordPress HeartBeat API”

Tulis komentar...