antond.net

0 %
Anton Darmawanto
Front-end Developer
Ui/UX Designer
  • Residence:
    Indonesia
  • City:
    Jakarta Selatan
  • Age:
    40
Indonesian
English
Jawa
html
CSS
Js
PHP
WordPress
Proxmox
Laravel
Linux server (ubuntu, debian, fedora)
Alibaba Cloud
  • Proxmox, Vm Ware
  • Stylus, Sass, Less
  • Gulp, Webpack, Grunt
  • GIT knowledge
0

No products in the cart.

Return To Shop

Cara Mengatasi CPU Usage 100% di VPS Linux: Lacak Proses Htop, Hentikan Zombie Process, dan Batasi CPULimit

11/11/2026

Setiap administrator server atau pemilik website yang mengelola Virtual Private Server (VPS) mandiri pasti pernah mengalami momen menegangkan ini: tiba-tiba panel monitoring server Anda mengirimkan notifikasi peringatan merah, situs web yang dihosting di server mulai memuat halaman dengan sangat lambat (time out), dan sesi terminal SSH Anda terasa sangat berat bahkan untuk sekadar mengetikkan satu baris perintah.

Ketika Anda menjalankan perintah pengecekan beban sistem, grafik pemakaian prosesor menunjukkan angka kritis: CPU Usage 100% bertahan selama berjam-jam tanpa pernah turun.

Beban pemakaian prosesor yang menyentuh batas maksimal secara terus-menerus tidak hanya membuat seluruh aplikasi web Anda lumpuh, namun juga berisiko memicu penghentian paksa (kill out-of-memory) oleh kernel Linux terhadap layanan-layanan penting seperti server database MariaDB atau layanan web server Nginx.

Panduan langkah demi langkah ini akan memandu Anda melacak secara cepat proses jahat atau skrip macet yang menjadi dalang pemborosan siklus komputasi, menghentikannya secara aman, dan memasang dinding pembatas resource agar server Anda tetap stabil melayani pengunjung.

Ilustrasi 1 Cara Mengatasi CPU Usage 100% di VPS Linux: Lacak Proses Htop, Hentikan Zombie Process, dan Batasi CPULimit
Ilustrasi 1 Cara Mengatasi CPU Usage 100% di VPS Linux: Lacak Proses Htop, Hentikan Zombie Process, dan Batasi CPULimit

Langkah 1: Pantau dan Urutkan Konsumsi Prosesor Menggunakan Htop

Alat pemantau bawaan top memang tersedia di semua distro Linux, namun tampilan antarmuka interaktif dari aplikasi htop memberikan visualisasi yang jauh lebih jelas dan mudah dianalisis secara langsung:

  • Buka terminal Anda dan masuk ke server VPS melalui koneksi SSH.
  • Pasang aplikasi htop jika belum tersedia di server Anda:
  • Untuk distro Ubuntu atau Debian: apt update && apt install -y htop
  • Untuk distro AlmaLinux atau Rocky Linux: dnf install -y htop
  • Jalankan aplikasi dengan mengetikkan perintah: htop
  • Layar terminal akan menampilkan grafik bar warna-warni untuk setiap inti prosesor (core) serta daftar proses yang sedang berjalan di sistem.
  • Untuk mengurutkan daftar proses berdasarkan konsumsi prosesor tertinggi, tekan tombol P pada keyboard Anda (atau tekan tombol F6, lalu pilih opsi kolom PERCENT_CPU).
  • Perhatikan baris teratas pada kolom PID (identitas proses) dan COMMAND (perintah yang sedang dieksekusi).

Apakah proses teratas tersebut adalah layanan web yang sah (seperti php-fpm atau mysqld), ataukah proses aneh dengan nama acak yang berjalan dari direktori temporer /tmp? Mengidentifikasi nama proses di baris puncak adalah kunci utama menentukan tindakan perbaikan berikutnya.

Ilustrasi 2 Cara Mengatasi CPU Usage 100% di VPS Linux: Lacak Proses Htop, Hentikan Zombie Process, dan Batasi CPULimit
Ilustrasi 2 Cara Mengatasi CPU Usage 100% di VPS Linux: Lacak Proses Htop, Hentikan Zombie Process, dan Batasi CPULimit

Langkah 2: Cara Hentikan Proses Macet atau Bandel Secara Aman

Jika Anda menemukan ada satu proses skrip PHP macet yang terus menerus menyedot seratus persen daya satu inti prosesor, jangan langsung menggunakan perintah pemutus paksa yang agresif karena dapat merusak integritas data yang sedang ditulis:

  • Cobalah menghentikan proses tersebut secara sopan (Graceful Termination) menggunakan sinyal SIGTERM:
kill -15 <NOMOR_PID>

Ganti <NOMOR_PID> dengan angka yang tertera pada kolom PID di tampilan htop Anda (misalnya kill -15 4821). Sinyal ini memberi kesempatan bagi proses untuk menutup koneksi database dan membersihkan memori secara aman sebelum berhenti.

  • Tunggu sekitar lima hingga sepuluh detik. Jika proses tersebut masih tetap berjalan dan menolak berhenti, kirimkan sinyal pemutusan paksa (Force Kill) menggunakan sinyal SIGKILL:
kill -9 <NOMOR_PID>

Sinyal angka 9 akan langsung memerintahkan kernel Linux untuk mencabut alokasi prosesor dari proses tersebut secara seketika.

Langkah 3: Bersihkan Proses Zombie (Defunct Processes)

Kadang kala, proses utama telah selesai bekerja namun proses anak (child process) tetap menggantung di dalam tabel proses kernel dalam status mati suri. Proses ini dikenal sebagai zombie process atau proses bertanda [Z] / defunct di htop.

Meskipun satu proses zombie tidak menyedot siklus komputasi secara langsung, ratusan proses zombie yang menumpuk akan mengunci antrian penjadwalan CPU (CPU run queue) dan menghalangi proses normal lainnya.

Untuk melacak dan membersihkan rantai proses zombie:

  • Jalankan perintah terminal berikut untuk menemukan proses zombie beserta nomor induknya (PPID):
ps -eo pid,ppid,stat,cmd | grep -w "Z"
  • Anda tidak bisa mematikan proses zombie secara langsung karena proses tersebut pada dasarnya sudah mati. Cara membersihkannya adalah dengan menghentikan proses induk (Parent PID) yang gagal melepas proses anak tersebut:
kill -9 <NOMOR_PPID_INDUK>

Setelah proses induk dihentikan, kernel sistem operasi akan mengambil alih dan secara otomatis menyapu bersih seluruh proses zombie yang terbengkalai.

Berikut tabel rangkuman strategi penanganan cepat berdasarkan jenis beban prosesor yang terdeteksi di server:

Pola Lonjakan CPU di ServerSumber Penyebab Paling SeringSolusi Penanganan Efektif
Lonjakan pada pool php-fpmSkrip PHP looping atau plugin web beratRestart pool php-fpm dan batasi max_children
Lonjakan konstan pada mysqldKueri database tanpa indeks (slow query)Analisis kueri lambat via slow query log
Nama proses acak di folder /tmpInfeksi skrip malware mining kriptoHentikan proses, hapus file skrip, dan amankan SSH
Banyak status ‘D’ (uninterruptible)Disk I/O macet menunggu storage cloudPeriksa kesehatan disk dan kecepatan baca IOPS
Banyak proses defunct / status ZKegagalan fungsi fork pada aplikasi customHentikan PPID induk untuk membersihkan tabel antrean
Ilustrasi 3 Cara Mengatasi CPU Usage 100% di VPS Linux: Lacak Proses Htop, Hentikan Zombie Process, dan Batasi CPULimit
Ilustrasi 3 Cara Mengatasi CPU Usage 100% di VPS Linux: Lacak Proses Htop, Hentikan Zombie Process, dan Batasi CPULimit

Langkah 4: Batasi Konsumsi Prosesor Berlebih Menggunakan CPULimit

Jika Anda memiliki tugas otomatisasi latar belakang (seperti skrip kompresi cadangan data harian atau konversi berkas gambar video) yang secara periodik membuat CPU server melonjak seratus persen hingga mengganggu pengunjung website, Anda dapat membatasi jatah penggunaan prosesor aplikasi tersebut menggunakan alat cpulimit:

  • Pasang paket cpulimit pada server Anda:
  • Untuk Ubuntu/Debian: apt install -y cpulimit
  • Untuk RHEL/AlmaLinux: dnf install -y cpulimit
  • Jalankan proses berat Anda di bawah batas persentase prosesor tertentu, misalnya membatasi penggunaan maksimal sebesar lima puluh persen dari kapasitas satu inti prosesor:
cpulimit -l 50 -- /usr/bin/php /var/www/script_backup.php &

Atau batasi proses yang sudah berjalan menggunakan nomor PID yang sedang aktif:

cpulimit -p <NOMOR_PID> -l 40 &

Dengan membatasi jatah siklus prosesor secara ketat, tugas latar belakang yang berat tetap dapat berjalan hingga tuntas tanpa pernah menghabiskan seluruh sumber daya komputasi server utama Anda.

Memelihara stabilitas beban prosesor VPS Linux adalah keterampilan penting bagi setiap administrator sistem. Melalui pemantauan visual htop yang teratur, pembersihan proses macet yang tepat, dan pembatasan beban tugas berkala, server Anda akan selalu responsif melayani lalu lintas aplikasi bisnis secara prima.

Posted in Tutorial