Mas Koding
/

Cara Limit Pemakaian CPU PM2 di Ubuntu Server

Mas Koding
Januari 12, 2026

PM2 adalah process manager populer untuk menjalankan aplikasi Node.js di server. Pada kondisi tertentu (traffic tinggi, bug, loop, atau crawler agresif), aplikasi Node.js bisa memakan CPU berlebihan dan membuat VPS menjadi lambat atau bahkan tidak responsif.


Solusi paling aman dan rapi adalah membatasi pemakaian CPU PM2 menggunakan systemd. Dengan cara ini, total CPU yang dipakai seluruh process PM2 tidak akan melebihi batas yang kita tentukan.

Artikel ini membahas langkah lengkap, contoh perhitungan, dan rekomendasi setting di Ubuntu Server.


Kenapa Perlu Limit CPU PM2?

Beberapa alasan umum:

  • Menjaga server tetap stabil

  • Mencegah PM2 memakan semua core CPU

  • Menghindari downtime akibat overload

  • Memberi ruang CPU untuk service lain (Nginx, MySQL, Redis, system)

  • Cocok untuk VPS sharing resource


Konsep Dasar CPUQuota di systemd

Systemd menggunakan satuan persentase CPU dengan aturan:

  • 100% = 1 core CPU

  • 200% = 2 core CPU

  • 800% = 8 core CPU

Artinya, walaupun VPS memiliki banyak core, kita bisa membatasi sebuah service agar hanya memakai sebagian saja.

CPUQuota berlaku untuk total semua process di dalam service tersebut (termasuk PM2 cluster mode).


Cek Nama Service PM2

Biasanya PM2 berjalan sebagai service berikut:

pm2 startup

Umumnya akan muncul salah satu:

  • pm2-root.service

  • pm2-username.service

Pada artikel ini kita gunakan contoh:

pm2-root.service

Cara Limit CPU PM2

1️⃣ Set Batas CPU

Gunakan perintah berikut:

sudo systemctl set-property pm2-root.service CPUQuota=160%

Contoh di atas berarti:

  • PM2 dibatasi maksimal 1.6 core CPU


2️⃣ Restart Service PM2

Agar limit langsung aktif:

sudo systemctl restart pm2-root.service

3️⃣ Cek Apakah Limit Aktif

systemctl show pm2-root.service | grep CPUQuota

Jika berhasil, akan muncul:

CPUQuota=160%

Contoh Perhitungan (VPS 8 Core)

Total CPU VPS:

8 core = 800%
Target PemakaianCPUQuotaCore Maks
10%80%0.8 core
20%160%1.6 core
25%200%2 core
50%400%4 core
70%560%5.6 core

Contoh:

  • Ingin PM2 hanya memakai maksimal 20% dari 8 core

  • Maka set:

CPUQuota=160%

Kamu juga dapat menggunakan tools "CPUQuota Calculator PM2" ini untuk menghitung % konfigurasi yang dibutuhkan.


Pengaruh ke PM2 Cluster Mode

Jika kamu menjalankan PM2 dengan:

pm2 start app.js -i max

Maka:

  • Semua worker berbagi jatah CPUQuota yang sama

  • Bukan per worker

  • Jika CPUQuota kecil, worker akan saling berebut CPU


Cara Mengubah atau Menurunkan Limit CPU

Jika sebelumnya:

CPUQuota=220%

Lalu diubah menjadi:

sudo systemctl set-property pm2-root.service CPUQuota=200%

Maka:

  • Nilai lama otomatis ditimpa

  • Aman

  • Tidak menyebabkan error


Cara Menghapus Limit CPU (Unlimited)

Jika ingin mengembalikan PM2 ke kondisi tanpa batas:

sudo systemctl set-property pm2-root.service CPUQuota=
sudo systemctl restart pm2-root.service

Monitoring Setelah Dibatasi

Gunakan:

htop

Yang akan terlihat:

  • Total CPU PM2 tidak akan melewati batas CPUQuota

  • Server lebih stabil saat traffic tinggi


Rekomendasi Setting Aman

Untuk VPS 8 core:

  • 🔹 Aman & stabil: CPUQuota=400%

  • 🔹 Seimbang (recommended): CPUQuota=560%

  • 🔹 Ketat / testing: CPUQuota=160%

Sesuaikan dengan:

  • Jumlah aplikasi PM2

  • Mode fork / cluster

  • Traffic & workload


Penutup

Kamu juga dapat menggunakan tools "CPUQuota Calculator PM2" ini untuk menghitung % konfigurasi yang dibutuhkan.

Membatasi pemakaian CPU PM2 menggunakan systemd CPUQuota adalah solusi paling rapi, aman, dan profesional untuk menjaga performa Ubuntu Server.

Dengan limit yang tepat, server tetap stabil tanpa harus mematikan aplikasi Node.js.

Semoga bermanfaat.

Share Article

Spread the word

0 Komentar

Mas Koding

Sharing knowledge about technology, programming tutorials, and the latest web development trends. Built for developers by developers.

Discover

© 2025 Mas Koding. Crafted with h.

System Operational