Wajib Diketahui Saat Server Linux Lag! Mengatur Prioritas Proses Secara Sempurna dengan Perintah nice

Gambaran Umum

Dalam lingkungan dengan sumber daya server yang terbatas, menjalankan tugas latar belakang atau skrip batch yang berat dapat memperlambat kecepatan respons layanan utama. Pada artikel ini, kita akan membahas tips praktis menggunakan perintah nice dan renice untuk mengatur prioritas penjadwalan CPU serta menjaga stabilitas sistem.

1. Memeriksa Prioritas Proses (NI/PR) dan Menyiapkan Lingkungan Pemantauan htop

Untuk latihan pemantauan prioritas proses, pasang paket alat esensial yaitu htop dan procps.

apt-get update -qq && apt-get install -y htop procps

Perintah ps digunakan untuk memeriksa informasi detail dan nilai prioritas dari proses yang sedang berjalan di sistem saat ini.
Pada output hasil, NI adalah nilai nice yang dapat disesuaikan oleh pengguna, sedangkan PRI menunjukkan prioritas aktual yang diberikan oleh kernel scheduler.
⚙️ [Opsi Utama]

-e : Memilih dan menampilkan semua proses yang berjalan di sistem.
-o : Mengatur format kolom output kustom (pid, ni, pri, comm, dll.).
-u : Memfilter dan hanya menampilkan proses milik pengguna tertentu.
-p : Hanya mencari proses yang sesuai dengan PID (Process ID) tertentu.
-f : Menampilkan daftar format lengkap yang mencakup detail menyeluruh dari proses.

ps -eo pid,ni,pri,comm | head -n 15

2. Menjalankan Tugas Latar Belakang dengan Prioritas Rendah Menggunakan Perintah nice

Untuk membuat dan mengelola file uji coba secara aman selama latihan, buat direktori kerja sementara dan berpindahlah ke direktori tersebut.

mkdir -p /tmp/nice_demo && cd /tmp/nice_demo

Gunakan perintah nice dengan menentukan nilai nice 10 untuk menurunkan prioritas sehingga mengalah dalam penggunaan sumber daya CPU, lalu jalankan tugas pembuatan file besar di latar belakang (&).

nice -n 10 dd if=/dev/urandom of=/tmp/nice_demo/sample.dat bs=1M count=100 &

Kombinasikan perintah ps dengan grep untuk memeriksa PID dari proses dd yang sedang berjalan beserta nilai nice (NI) aktualnya guna memastikan nilainya telah diatur sesuai rencana.

ps -eo pid,ni,comm | grep dd

3. Mengubah Prioritas Proses yang Sedang Berjalan Secara Real-Time dengan renice

Untuk latihan mengubah prioritas secara real-time, jalankan proses sleep selama 300 detik di latar belakang (&).

sleep 300 &

Gunakan variabel khusus $! yang merepresentasikan ID proses (PID) yang paling terakhir dijalankan di latar belakang, lalu simpan ke dalam environment variable TARGET_PID.

TARGET_PID=$!

Periksa nilai nice (NI) saat ini dari proses target menggunakan perintah ps, dan Anda dapat melihat bahwa proses tersebut berjalan dengan nilai default 0.

ps -p $TARGET_PID -o pid,ni,comm

Gunakan perintah renice untuk mengubah nilai nice proses target yang sudah berjalan menjadi 15 guna menurunkan prioritasnya.
Melalui output, Anda dapat mengonfirmasi bahwa prioritas sebelumnya (old priority 0) telah berhasil diubah ke prioritas baru (new priority 15).

renice 15 -p $TARGET_PID

Periksa kembali proses target menggunakan perintah ps untuk memastikan bahwa nilai nice (NI) sebesar 15 telah langsung diterapkan.

ps -p $TARGET_PID -o pid,ni,comm

Hentikan paksa (kill -9) proses pengujian yang telah selesai dijalankan untuk membersihkan sumber daya sistem.

kill -9 $TARGET_PID

4. Memberikan Prioritas Tinggi (Nilai nice Negatif) Menggunakan Hak Akses root dan Hal yang Perlu Diperhatikan

Nilai nice negatif (-5) tidak dapat diatur oleh pengguna biasa. Oleh karena itu, gunakan hak akses administrator sudo untuk menjalankan proses dengan prioritas lebih tinggi di latar belakang (&).
Proses yang diberi nilai nice negatif akan mendapatkan prioritas eksekusi yang lebih tinggi dalam penjadwalan CPU, sehingga dapat memperoleh alokasi sumber daya sistem secara intensif.

sudo nice -n -5 bash -c ’echo “High priority process running” && sleep 5’ &

Periksa proses yang sedang berjalan menggunakan perintah ps untuk memastikan nilai nice (NI) dari proses target (sleep) telah diterapkan dengan benar menjadi -5.
Dari hasil output, Anda dapat melihat bahwa tidak seperti proses default pada umumnya (0), proses ini telah diatur dengan nilai nice negatif (-5) dan berjalan dengan prioritas tinggi.

ps -eo pid,ni,comm | grep -E ‘sleep|bash’ | tail -n 5

Sampai di sini kita telah mempelajari secara singkat cara mengatur prioritas proses menggunakan perintah nice yang sangat berguna saat server Linux mengalami lag atau kelambatan.
Ketika sumber daya server menipis, cobalah terapkan prioritas yang sesuai dengan situasi agar sistem dapat beroperasi dengan jauh lebih stabil dan lancar.