Kejadian CPU server mendadak tinggi sering bikin panik, apalagi saat WordPress berjalan di Docker dan website sedang aktif. Saya pernah mengalami kondisi ini di server produksi. Awalnya normal, lalu tiba-tiba load melonjak tanpa ada deploy atau update apa pun. Karena server tidak boleh down, penanganannya harus cepat dan tepat.

Masalah seperti ini biasanya bukan berasal dari Docker-nya, melainkan dari proses di dalam container WordPress itu sendiri. Karena itu, langkah pertama bukan restart, tetapi melacak sumber beban CPU secara bertahap.
Kenapa CPU WordPress di Docker Bisa Tiba-Tiba Tinggi?
Berdasarkan pengalaman, lonjakan CPU WordPress di Docker paling sering disebabkan oleh hal-hal berikut:
- Bot atau crawler agresif menghantam endpoint tertentu
- Plugin WordPress berat atau error loop
- WP-Cron berjalan terus-menerus
- Query database lambat
- Serangan brute force ke wp-login.php atau xmlrpc.php
Karena semua berjalan di container, masalah ini sering tidak terlihat jika hanya melihat statistik server secara global.
Langkah 1: Pastikan Container Mana yang Menguras CPU
Masuk ke server lalu jalankan perintah berikut:
docker stats
Perhatikan container WordPress yang CPU-nya paling tinggi. Biasanya langsung terlihat karena nilainya melonjak jauh dibanding container lain seperti database atau reverse proxy.
Langkah 2: Cek Proses di Dalam Container WordPress
Setelah container teridentifikasi, masuk ke dalamnya:
docker exec -it nama_container_wp bash
Lalu jalankan:
top
Di sini biasanya terlihat proses php-fpm atau apache dengan penggunaan CPU tinggi. Jika prosesnya banyak dan terus bertambah, itu tanda ada request abnormal.
Langkah 3: Cek Akses Log WordPress
Akses log sering jadi kunci utama. Masih di dalam container, cek log web server:
tail -f /var/log/apache2/access.log
atau jika menggunakan nginx:
tail -f /var/log/nginx/access.log
Biasanya terlihat request berulang ke /wp-login.php, /xmlrpc.php, atau endpoint tertentu dari satu IP yang sama.
Langkah 4: Matikan XML-RPC Jika Tidak Digunakan
XML-RPC sering menjadi target serangan dan pemicu CPU tinggi. Jika tidak digunakan, sebaiknya langsung diblok.
Tambahkan kode berikut di .htaccess atau konfigurasi nginx:
<Files xmlrpc.php>
Order Deny,Allow
Deny from all
</Files>
Langkah ini sering langsung menurunkan beban CPU secara signifikan.
Langkah 5: Nonaktifkan WP-Cron dan Gunakan Cron Server
WP-Cron berbasis traffic sering membuat CPU tidak stabil. Solusi yang lebih aman adalah mematikannya.
Edit wp-config.php:
define('DISABLE_WP_CRON', true);
Lalu buat cron job di server:
*/5 * * * * docker exec nama_container_wp php /var/www/html/wp-cron.php > /dev/null 2>&1
Dengan cara ini, cron tetap berjalan terkontrol tanpa membebani CPU.
Langkah 6: Cek Plugin yang Aktif
Jika CPU masih tinggi, nonaktifkan plugin satu per satu. Cara tercepat tanpa login dashboard adalah dengan rename folder plugin:
mv wp-content/plugins/nama-plugin wp-content/plugins/nama-plugin.off
Plugin cache atau statistik sering menjadi penyebab jika konfigurasinya tidak tepat.
Baca Juga:
- Docker Tidak Bisa Akses Internet? Ini Penyebab dan Solusinya
- Monitoring Docker & Hard Disk Server dengan Scrutiny
- Optimasi Log Server Ubuntu agar Tidak Membebani Disk
Kesimpulan
CPU WordPress di Docker yang tiba-tiba tinggi tidak boleh ditangani dengan restart membabi buta. Dengan pendekatan bertahap, sumber masalah bisa ditemukan tanpa downtime. Dari pengalaman di server produksi, kombinasi cek log, blok endpoint rawan, dan pengaturan cron sudah cukup untuk menstabilkan CPU dalam waktu singkat.
Jika ditangani dengan benar, WordPress di Docker tetap stabil dan aman untuk jangka panjang.
