Salah satu kejadian paling bikin was-was untuk sysadmin adalah saat server Linux tiba-tiba mengalami CPU usage yang melonjak tinggi. Aplikasi jadi lambat, service delay, dan kadang server terasa seperti mau “meledak”. Masalah ini bisa muncul karena aplikasi yang runaway, proses zombie, sampai service yang crash looping.
Di tulisan ini, saya akan share langkah praktis untuk menganalisa dan menangani high CPU usage di Linux, mulai dari cara paling dasar sampai troubleshooting yang lebih teknis.
1. Cek Proses Paling Rakus CPU
Langkah pertama adalah langsung lihat siapa pelakunya. Gunakan:
top
Atau versi yang lebih enak dibaca:
htop
Biasanya kalian akan menemukan proses yang tiba-tiba makan CPU 300% ke atas. Dari sini, kalian bisa tentukan apakah proses tersebut wajar atau memang bermasalah.
2. Analisa Proses dengan ps & lsof
Kalau prosesnya mencurigakan, kalian bisa cek detailnya:
ps aux | grep <PID>
Lihat command lengkap, user mana yang menjalankan, dan apakah parent process-nya normal.
Kemudian cek file atau port yang dibuka:
lsof -p <PID>
Langkah ini penting untuk mengetahui apakah proses sedang looping karena IO atau network.
3. Cek Load Average untuk Mengukur Beban Sistem
Load average bisa menunjukkan apakah CPU bottleneck atau ada antrian proses yang menumpuk:
uptime
Kalau load lebih tinggi dari jumlah core, berarti server memang sedang “kewalahan”.
4. Restart Service Penyebab Masalah (Kalau Aman)
Kadang service tertentu masuk kondisi loop atau hang. Jika kalian sudah yakin prosesnya tidak sedang melakukan pekerjaan penting, restart service bisa jadi solusi tercepat:
systemctl restart <service>
Misalnya:
systemctl restart apache2
systemctl restart mysql
systemctl restart carbonio-mta
Tapi lakukan restart dengan hati-hati, terutama di jam operasional.
5. Periksa Log untuk Menemukan Penyebab Root Cause
CPU usage tinggi biasanya meninggalkan jejak di log. Cek log aplikasi terkait atau log sistem:
journalctl -xe
Atau log spesifik:
tail -f /var/log/syslog
Banyak kasus seperti:
- service crash dan berulang kali restart
- aplikasi menulis log secara agresif
- script cron berjalan berulang tanpa henti
- daemon salah konfigurasi
Dengan membaca log, kalian bisa menemukan akar masalahnya.
6. Kill Proses yang Tidak Bisa Dipulihkan
Kalau proses sudah tidak responsif sama sekali, terpaksa harus di-kill:
kill -9 <PID>
Ini langkah terakhir, tapi sering menyelamatkan server dari stuck total.
7. Cek Apakah Ada Malware atau Cron Job Mencurigakan
Server dengan akses publik rawan disusupi script mining atau cron yang inject task sendiri.
Cek cron:
crontab -l
ls -lah /etc/cron*
Cek proses mining:
ps aux | grep -i miner
Kalau menemukan proses aneh, segera bersihkan.
Kesimpulan
High CPU usage di Linux tidak selalu berarti server rusak. Kadang hanya ada satu proses yang runaway, service crash, atau konfigurasi yang salah. Dengan langkah-langkah di atas mulai dari analisa proses, cek log, restart service, hingga memastikan tidak ada malware kalian bisa menangani dan mencegah masalah ini kembali muncul.
Semakin sering kalian melakukan troubleshooting, makin cepat kalian memahami pola masalah di server.