Skip to main content
  1. Posts/

Modifying Resource Limits for Active Processes in Linux

·3 mins·
linux linux
Table of Contents

Masalah seperti “Too many open files” pada proses atau service yang aktif sering kali menjadi kendala serius di lingkungan produksi, terutama pada server dengan beban kerja tinggi atau jumlah koneksi yang besar.

Dalam kondisi tersebut, Anda dapat meningkatkan resource limit (misalnya open_files_limit) pada proses yang sedang berjalan tanpa perlu melakukan restart server.

Using prlimit
#

prlimit adalah tool di Linux untuk menampilkan dan mengatur limit resource pada proses yang sudah berjalan.

Menampilkan semua limit resource pada suatu proses

prlimit --pid 13134

Mengatur batas open files (soft dan hard limit)

prlimit --pid 13134 --nofile=1024:4095

Keterangan:

  • 1024 → soft limit
  • 4095 → hard limit

Using systemd-run
#

systemd-run memungkinkan kita menetapkan limit resource saat menjalankan proses baru.

Membatasi penggunaan RAM hingga 1GB

systemd-run --scope -p MemoryLimit=1G ./myProcess.sh

Membatasi penggunaan CPU hingga 50%

systemd-run --scope -p CPUQuota=50% ./myProcess.sh

Using cpulimit
#

cpulimit digunakan untuk membatasi penggunaan CPU pada proses baru maupun proses yang sudah berjalan.

Membatasi proses Firefox hingga 20% CPU

cpulimit -l 20 firefox

Untuk membatasi proses yang sudah berjalan berdasarkan PID, gunakan:

cpulimit -p <PID> -l 20

Using ionice
#

ionice digunakan untuk mengatur prioritas akses disk I/O suatu proses.

Tool ini bekerja dengan menetapkan kelas prioritas I/O pada proses sehingga dapat mengontrol seberapa agresif proses tersebut menggunakan disk.

Kelas 3 (idle)

Proses hanya menggunakan disk I/O jika tidak ada permintaan I/O lain yang lebih prioritas.

ionice --class 3 ./myProcess.sh

Kelas 1 (realtime)

Prioritas tertinggi. Gunakan dengan sangat hati-hati karena dapat mengganggu proses lain di sistem.

ionice --class 1 ./myProcess.sh

Informasi kelas ionice:

  • 0 → none (mengikuti scheduler default)
  • 1 → realtime (prioritas tertinggi)
  • 2 → best-effort (default untuk sebagian besar proses)
  • 3 → idle (hanya berjalan jika disk tidak sibuk)

Modify /etc/security/limits.conf
#

Untuk membuat limit resource menjadi permanen, Anda dapat mengaturnya melalui file:

/etc/security/limits.conf

Perubahan pada file ini biasanya memerlukan:

  • Re-login user
  • Restart service
  • Atau restart server (jika diperlukan)

Contoh konfigurasi:

*        soft    core        0
*        hard    core        0
*        soft    data        unlimited
*        hard    data        unlimited
*        soft    nice        0
*        hard    nice        0
*        soft    fsize       unlimited
*        hard    fsize       unlimited
*        soft    sigpending  62793
*        hard    sigpending  62793
*        soft    memlock     64
*        hard    memlock     64
*        soft    rss         unlimited
*        hard    rss         unlimited
*        soft    nofile      500000
*        hard    nofile      500000
*        soft    msgqueue    819200
*        hard    msgqueue    819200
*        soft    rtprio      0
*        hard    rtprio      0
*        soft    stack       10240
*        hard    stack       10240
*        soft    cpu         unlimited
*        hard    cpu         unlimited
*        soft    nproc       unlimited
*        hard    nproc       unlimited
*        soft    as          unlimited
*        hard    as          unlimited
*        soft    locks       unlimited
*        hard    locks       unlimited

root     soft    nofile      500000
root     hard    nofile      500000
root     soft    nproc       unlimited
root     hard    nproc       unlimited

Related

StorCLI Command Cheat Sheet
·3 mins
linux linux
Error libcrypto Saat SSH
·2 mins
linux linux
Cara Menampilkan Timestamp di History Linux
·1 min
linux linux
Mengubah Tanggal Modifikasi File di Linux
·1 min
linux linux
Create Simple Systemd Service in Linux
·2 mins
linux linux
How to Configure cGroups v2 on Linux
·2 mins
linux linux