Cara Mengatur Prioritas Proses Linux Menggunakan Perintah Nice dan renice


Dalam artikel ini, kami akan menjelaskan secara singkat penjadwal kernel (juga dikenal sebagai penjadwal proses), dan prioritas proses, yang merupakan topik di luar ruang lingkup panduan ini. Kemudian kita akan mendalami sedikit tentang manajemen proses Linux: lihat cara menjalankan program atau perintah dengan prioritas yang dimodifikasi dan juga mengubah prioritas menjalankan proses Linux.

Baca Juga: Cara Memantau Proses Linux dan Menetapkan Batas Proses Berdasarkan Per Pengguna

Memahami Penjadwal Kernel Linux

Penjadwal kernel adalah unit kernel yang menentukan proses yang paling sesuai dari semua proses yang dapat dijalankan untuk dijalankan selanjutnya; itu mengalokasikan waktu prosesor antara proses yang dapat dijalankan pada suatu sistem. Proses yang dapat dijalankan adalah proses yang hanya menunggu waktu CPU, dan siap untuk dieksekusi.

Penjadwal membentuk inti multitasking di Linux, menggunakan algoritma penjadwalan berbasis prioritas untuk memilih antara proses yang dapat dijalankan dalam sistem. Ini memberi peringkat proses berdasarkan yang paling layak serta kebutuhan waktu CPU.

Memahami Prioritas Proses dan Nilai Bagus

Kernel menyimpan banyak informasi tentang proses termasuk prioritas proses yang merupakan prioritas penjadwalan yang melekat pada suatu proses. Proses dengan prioritas lebih tinggi akan dieksekusi sebelum proses dengan prioritas lebih rendah, sedangkan proses dengan prioritas yang sama dijadwalkan satu demi satu, berulang kali.

Ada total 140 prioritas dan dua rentang prioritas berbeda yang diterapkan di Linux. Yang pertama adalah nilai bagus (kebaikan) yang berkisar dari -20 (nilai prioritas tertinggi) hingga 19 (nilai prioritas terendah) dan defaultnya adalah 0, inilah yang akan kami ungkapkan dalam panduan ini. Prioritas lainnya adalah prioritas real-time, yang berkisar dari 1 hingga 99 secara default, kemudian 100 hingga 139 dimaksudkan untuk ruang pengguna.

Salah satu karakteristik penting Linux adalah penjadwalan dinamis berbasis prioritas, yang memungkinkan nilai bagus dari proses diubah (ditambah atau dikurangi) tergantung pada kebutuhan Anda, seperti yang akan kita lihat nanti.

Cara Memeriksa Nilai Bagus dari Proses Linux

Untuk melihat nilai bagus dari suatu proses, kita dapat menggunakan utilitas seperti ps, top atau htop.

Untuk melihat nilai proses yang bagus dengan perintah ps dalam format yang ditentukan pengguna (di sini kolom NI menunjukkan kebaikan proses).

ps -eo pid,ppid,ni,comm

Alternatifnya, Anda dapat menggunakan utilitas top atau htop untuk melihat nilai bagus proses Linux seperti yang ditunjukkan.

top
htop

Perbedaan Antara PR atau PRI dan NI

Dari keluaran top dan htop di atas, Anda akan melihat bahwa ada kolom bernama PR dan PRI yang bersifat reseptif yang menunjukkan prioritas suatu proses.

Oleh karena itu, ini berarti bahwa:

  • NI – adalah nilai bagus, yang merupakan konsep ruang pengguna
  • PR atau PRI – adalah prioritas proses yang sebenarnya, seperti yang terlihat pada kernel Linux.
Cara Menghitung Nilai PR atau PRI
Total number of priorities = 140
Real time priority range(PR or PRI):  0 to 99 
User space priority range: 100 to 139

Kisaran nilai bagus (NI): -20 hingga 19

PR = 20 + NI
PR = 20 + (-20 to + 19)
PR = 20 + -20  to 20 + 19
PR = 0 to 39 which is same as 100 to 139.

Namun jika Anda melihat rt dan bukan angka seperti yang ditunjukkan pada tangkapan layar di bawah, ini pada dasarnya berarti proses berjalan berdasarkan prioritas penjadwalan waktu nyata.

Cara Menjalankan Perintah dengan Nilai Bagus yang Diberikan di Linux

Di sini, kita akan melihat bagaimana memprioritaskan penggunaan CPU suatu program atau perintah. Jika Anda memiliki program atau tugas yang sangat intensif CPU, namun Anda juga memahami bahwa hal tersebut mungkin membutuhkan waktu lama untuk diselesaikan, Anda dapat menetapkannya sebagai prioritas tinggi atau disukai menggunakan perintah bagus.

Sintaksnya adalah sebagai berikut:

nice -n niceness-value [command args] 
OR
nice -niceness-value [command args] 	#it’s confusing for negative values
OR
nice --adjustment=niceness-value [command args]

Penting:

  • Jika tidak ada nilai yang diberikan, Nice menetapkan prioritas 10 secara default.
  • Sebuah perintah atau program dijalankan tanpa default yang bagus dengan prioritas nol.
  • Hanya root yang dapat menjalankan perintah atau program dengan prioritas tinggi atau tinggi.
  • Pengguna normal hanya dapat menjalankan perintah atau program dengan prioritas rendah.

Misalnya, alih-alih memulai program atau perintah dengan prioritas default, Anda dapat memulainya dengan prioritas tertentu menggunakan perintah Nice berikut.

sudo nice -n 5 tar -czf backup.tar.gz ./Documents/*
OR
sudo nice --adjustment=5 tar -czf backup.tar.gz ./Documents/*

Anda juga bisa menggunakan cara ketiga yang sedikit membingungkan terutama untuk nilai kebaikan negatif.

sudo nice -5 tar -czf backup.tar.gz  ./Documents/*

Ubah Prioritas Penjadwalan suatu Proses di Linux

Seperti yang kami sebutkan sebelumnya, Linux memungkinkan penjadwalan dinamis berbasis prioritas. Oleh karena itu, jika suatu program sudah berjalan, Anda dapat mengubah prioritasnya dengan perintah renice dalam bentuk ini:

renice -n  -12  -p 1055
renice -n -2  -u apache

Dari contoh keluaran top di bawah, kualitas teamspe+ dengan PID 1055 sekarang adalah -12 dan untuk semuanya proses yang dimiliki oleh pengguna apache adalah -2.

Masih menggunakan keluaran ini, Anda bisa melihat rumus PR=20 + NI singkatan,

PR for ts3server = 20 + -12 = 8
PR for apache processes = 20 + -2 = 18

Setiap perubahan yang Anda buat dengan perintah renice pada nilai bagus proses pengguna hanya berlaku hingga reboot berikutnya. Untuk menetapkan nilai default permanen, baca bagian berikutnya.

Cara Menetapkan Nilai Bagus Default Dari Proses Pengguna Tertentu

Anda dapat menyetel nilai Nice default dari pengguna atau grup tertentu di file /etc/security/limits.conf. Fungsi utamanya adalah untuk menentukan batas sumber daya bagi pengguna yang login melalui PAM.

Sintaks untuk menentukan batas bagi pengguna adalah sebagai berikut (dan kemungkinan nilai berbagai kolom dijelaskan dalam file):

#<domain>   <type>  <item>  <value>

Sekarang gunakan sintaksis di bawah ini di mana hard – berarti menerapkan tautan keras dan lunak berarti – menerapkan batas lunak.

<username>  <hard|soft>  priority  <nice value>

Alternatifnya, buat file di bawah /etc/security/limits.d/ yang mengesampingkan pengaturan di file utama di atas, dan file ini dibaca sesuai urutan abjad.

Mulailah dengan membuat file /etc/security/limits.d/tecmint-priority.conf untuk pengguna tecmint:

vi /etc/security/limits.d/tecmint-priority.conf

Kemudian tambahkan konfigurasi ini di dalamnya:

tecmint  hard  priority  10

Simpan dan tutup file. Mulai sekarang, setiap proses yang dimiliki oleh tecmint akan memiliki nilai 10 dan PR 30.

Untuk informasi lebih lanjut, baca halaman manual bagus dan renice:

man nice
man renice 

Anda mungkin juga ingin membaca artikel berikut tentang manajemen proses Linux.

  1. Cara Menemukan dan Menghentikan Proses yang Berjalan di Linux
  2. Panduan Perintah Kill, Pkill dan Killall untuk Menghentikan Proses di Linux
  3. Cara Memantau Penggunaan Sistem, Pemadaman, dan Memecahkan Masalah Server Linux
  4. CPUTool – Batasi dan Kontrol Pemanfaatan CPU dari Segala Proses di Linux

Pada artikel ini, kami menjelaskan secara singkat penjadwal kernel, prioritas proses, melihat cara menjalankan program atau perintah dengan prioritas yang dimodifikasi dan juga mengubah prioritas proses Linux yang aktif. Anda dapat membagikan pemikiran apa pun mengenai topik ini melalui formulir umpan balik di bawah.