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 penggunaPR
atauPRI
– 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.
- Cara Menemukan dan Menghentikan Proses yang Berjalan di Linux
- Panduan Perintah Kill, Pkill dan Killall untuk Menghentikan Proses di Linux
- Cara Memantau Penggunaan Sistem, Pemadaman, dan Memecahkan Masalah Server Linux
- 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.