Setiap proses yang berjalan di Unix memiliki prioritas yang ditetapkan untuknya.
Anda dapat mengubah prioritas proses menggunakan utilitas Nice dan renice. Perintah Nice akan meluncurkan proses dengan prioritas penjadwalan yang ditentukan pengguna. Perintah Renice akan mengubah prioritas penjadwalan proses yang sedang berjalan.
Kernel Linux menjadwalkan proses dan mengalokasikan waktu CPU yang sesuai untuk masing-masing proses. Namun, ketika salah satu proses Anda membutuhkan prioritas yang lebih tinggi untuk mendapatkan lebih banyak waktu CPU, Anda dapat menggunakan perintah Nice dan renice seperti yang dijelaskan dalam tutorial ini.
Rentang prioritas penjadwalan proses adalah dari -20 hingga 19. Kami sebut ini sebagai nilai bagus.
Nilai bagus -20 mewakili prioritas tertinggi, dan nilai bagus 19 mewakili prioritas paling rendah untuk suatu proses.
Secara default ketika sebuah proses dimulai, itu mendapat prioritas default 0.
1. Tampilkan Nilai Bagus dari suatu Proses
Prioritas proses saat ini dapat ditampilkan menggunakan perintah ps.
Kolom “NI” di output perintah ps menunjukkan nilai bagus saat ini (yaitu prioritas) dari suatu proses.
Kami akan meluncurkan program pengujian yang disebut test.pl yang akan digunakan untuk mendemonstrasikan perintah Nice dan renice. Program pengujian ini akan melakukan tugas-tugas tertentu, dan akan berjalan untuk sementara waktu.
$ perl test.pl
Jika Anda menjalankan perintah ps seperti yang ditunjukkan di bawah ini, Anda dapat melihat bahwa program test.pl ini memiliki nilai default Nice 0 (lihat kolom NI pada output berikut).
$ ps -fl -C "perl test.pl" F S UID PID PPID C PRI NI ADDR SZ WCHAN STIME TTY TIME CMD 0 R bala 6884 6424 99 80 0 - 1556 - 13:45 pts/3 00:05:54 perl test.pl
2. Luncurkan Program dengan Prioritas Lebih Rendah
Alih-alih meluncurkan program dengan prioritas default, Anda dapat menggunakan perintah Nice untuk meluncurkan proses dengan prioritas tertentu.
Dalam contoh ini, test.pl diluncurkan dengan nilai 10 yang bagus.
$ nice -10 perl test.pl
Catatan: Ingat bahwa -10 pada perintah di atas menetapkan prioritas proses ke 10. Perintah – di Nice adalah singkatan dari hypen, yang kita gunakan untuk meneruskan opsi ke perintah.
Jadi, untuk melewati nilai bagus 5, Anda akan mengatakan -5. Untuk melewati nilai bagus 6, Anda akan mengatakan -6.
Seperti yang Anda lihat di bawah, program ini sekarang diluncurkan dengan nilai bagus 10, yang berarti program ini akan berjalan pada prioritas yang lebih rendah jika dibandingkan dengan program lain yang diluncurkan secara default.
$ ps -fl -C "perl test.pl" F S UID PID PPID C PRI NI ADDR SZ WCHAN STIME TTY TIME CMD 0 R bala 7044 6424 99 90 10 - 1556 - 13:58 pts/3 00:00:03 perl test.pl
3. Luncurkan Program dengan Prioritas Tinggi
Anda juga dapat meluncurkan program dengan prioritas lebih tinggi. Nilai bagus negatif akan meningkatkan prioritas proses. Jadi, nilainya harus ditentukan dengan — (dua tanda hubung) di depan perintah Nice seperti yang ditunjukkan di bawah ini.
# nice --10 perl test.pl
Jadi, untuk meneruskan nilai bagus -5, Anda akan menambahkan dua tanda hubung di depan 5. Untuk melewati nilai bagus -6, Anda akan menambahkan dua tanda hubung di depan 6.
Seperti yang Anda lihat di bawah, program ini sekarang diluncurkan dengan nilai bagus -10, yang berarti program ini akan berjalan pada prioritas yang lebih tinggi jika dibandingkan dengan program lain yang diluncurkan secara default.
# ps -fl -C "perl test.pl" F S UID PID PPID C PRI NI ADDR SZ WCHAN STIME TTY TIME CMD 4 R root 3534 3234 99 70 -10 - 1557 ? 19:06 pts/1 00:00:56 perl test.pl
Catatan:Pengguna biasa tidak diperbolehkan meluncurkan program dengan prioritas lebih tinggi. Hanya pengguna root yang diizinkan untuk meluncurkan program dengan prioritas tinggi.
Sebagai pengguna biasa, jika Anda meningkatkan prioritas, Anda akan mendapatkan pesan kesalahan berikut dari perintah Nice.
$ nice --10 perl test.pl nice: cannot set niceness: Permission denied
Perhatikan bahwa setelah mencetak pesan kesalahan di atas, program akan tetap berjalan dengan prioritas default (yaitu :0).
4. Ubah Prioritas dengan opsi -n
Prioritas proses dapat disesuaikan dengan bantuan opsi -n.
Tingkatkan prioritas:
# nice -n -5 perl test.pl
Kurangi prioritas:
# nice -n 5 perl test.pl
5. Ubah Prioritas Proses yang Berjalan
Prioritas proses yang sudah berjalan dapat diubah menggunakan perintah renice.
Dalam contoh ini, program test.pl sudah berjalan dengan nilai bagus -10.
# ps -fl -C "perl test.pl" F S UID PID PPID C PRI NI ADDR SZ WCHAN STIME TTY TIME CMD 4 R root 3534 3234 99 70 -10 - 1557 ? 19:06 pts/1 00:00:56 perl test.pl
Kita dapat mengubah nilai Nice dari program di atas menjadi -19 seperti yang ditunjukkan di bawah ini. Lewati id proses program di atas ke opsi -p.
# renice -n -19 -p 3534
Verifikasi bahwa nilai bagus diubah menjadi -19.
# ps -fl -C "perl test.pl" F S UID PID PPID C PRI NI ADDR SZ WCHAN STIME TTY TIME CMD 4 R root 3534 3234 99 70 -19 - 1557 ? 19:06 pts/1 00:00:56 perl test.pl
6. Ubah Prioritas Semua Proses yang Menjadi Milik Grup
Menggunakan opsi -g Anda dapat mengubah prioritas semua proses yang termasuk dalam grup. Perintah berikut akan mengubah nilai Nice dari semua proses yang dimiliki geekstuff menjadi 5.
# renice -n 5 -g geekstuff
7. Ubah Prioritas Semua Proses yang Dimiliki Pengguna
Renice memungkinkan untuk mengubah prioritas semua proses yang dimiliki oleh pengguna tertentu seperti yang ditunjukkan di bawah ini.
# renice -n 5 -u bala
Perintah di atas akan mengubah prioritas semua proses yang dimiliki oleh pengguna bala. Ini akan memberikan nilai bagus 5 untuk semua proses milik pengguna bala.
# ps -fl -C "perl" F S UID PID PPID C PRI NI ADDR SZ WCHAN STIME TTY TIME CMD 0 R bala 2720 2607 99 85 5 - 1556 - 14:34 pts/2 00:05:07 perl test.pl 0 R bala 2795 2661 99 85 5 - 1556 - 14:39 pts/3 00:00:09 perl 2.pl