Perintah renice Linux: ubah nice proses yang sedang berjalan

Perintah renice mengubah nilai nice proses yang sudah berjalan. Nilai nice yang lebih besar biasanya menurunkan prioritas CPU relatif, sehingga dapat dipakai untuk mengurangi persaingan CPU dari pekerjaan yang tidak mendesak setelah PID dan pemiliknya diperiksa.

Berbeda dengan nice untuk memulai perintah baru, renice memilih proses yang sudah ada. Perubahan ini tidak menghentikan proses, tidak membatasi persentase CPU secara tetap, dan tidak mengurangi penggunaan memorinya. Pengaruh yang terlihat bergantung pada beban dan kebijakan penjadwalan sistem.

Sintaks dan kondisi penting opsi -n

renice -n PRIORITAS -p PID...

PRIORITAS dan PID merupakan penanda yang diganti nilai sebenarnya. PID adalah process ID, yaitu nomor identitas proses. Contoh berikut memakai renice dari util-linux pada Linux; periksa renice --version, renice --help, serta man renice pada sistem yang digunakan.

Jangan menyamakan arti -n pada semua lingkungan. Pada util-linux yang dibahas dalam manual saat ini, -n memilih nilai nice absolut jika variabel lingkungan POSIXLY_CORRECT tidak ditetapkan. Jika variabel itu ditetapkan, -n memilih perubahan relatif. Karena itu, contoh -n 10 di bawah berarti menetapkan nice menjadi 10 hanya pada kondisi pertama.

Periksa variabel lingkungan itu dengan printenv POSIXLY_CORRECT. Pada GNU printenv, status keluar 0 berarti variabel ditemukan, termasuk bila nilainya kosong; status 1 berarti variabel tidak ditemukan. Baca status segera melalui printf '%s\n' "$?" sebelum menjalankan perintah lain. Jangan menyimpulkan variabel tidak ada hanya karena tidak terlihat teks nilainya.

Manual util-linux saat ini juga menyediakan --priority untuk nilai absolut dan --relative untuk penyesuaian relatif tanpa bergantung pada variabel tersebut. Gunakan bentuk itu hanya jika bantuan versi lokal mendukungnya. Periksa implementasi dan lingkungan sebelum menyalin contoh dari sistem lain.

Siapkan proses uji dan periksa identitasnya

Untuk latihan, gunakan proses milik sendiri yang boleh disesuaikan. Pada Bash, Anda dapat memulai sleep 60 &, lalu segera mencatat PID terakhir dengan pid_uji=$! dan melihat nomornya melalui printf '%s\n' "$pid_uji". Jalankan pada shell yang sama dan lakukan pemeriksaan sebelum sleep selesai.

Angka 1234 pada contoh berikut hanya ilustrasi. Ganti dengan PID proses uji yang baru dicatat:

ps -p 1234 -o pid,user,ni,cmd

Periksa PID, pengguna, nilai NI, dan perintah. NI menunjukkan nilai nice saat ini. Pastikan semua kolom merujuk proses uji yang benar; panduan ps untuk PID dan kolom proses menjelaskan pemilihannya. Jangan lanjutkan jika proses tidak ditemukan atau identitasnya berbeda.

Ubah nilai nice dan periksa hasilnya

renice -n 10 -p 1234

Ganti 1234 dengan PID yang sudah diperiksa. Dengan util-linux dan POSIXLY_CORRECT tidak ditetapkan, perintah ini meminta nilai akhir 10. Jika POSIXLY_CORRECT ditetapkan, nilainya ditambah 10; misalnya nilai awal 5 menjadi 15 dalam rentang yang diizinkan. Jangan berasumsi bahwa hasilnya selalu 10.

ps -p 1234 -o pid,ni,cmd

Baca ulang kolom NI dan perintah sesudah penyesuaian. Dalam kondisi nilai absolut, nilai awal 0 dapat berubah menjadi 10 bila permintaan berhasil. Format pesan renice dapat berbeda menurut implementasi, sehingga hasil ps dan identitas sasaran perlu diperiksa secara terpisah dari pesan keberhasilan.

Sleep dipakai agar proses mudah diamati, bukan untuk mengukur pembagian CPU. Anda tidak perlu membuat beban CPU besar hanya untuk memastikan kolom NI berubah. Biarkan proses uji selesai secara alami setelah waktu tunggunya.

Alur pemeriksaan sebelum dan sesudah renice

Berikut alur lengkap dengan penanda PID. Ganti setiap PID dengan nomor proses uji yang sama, periksa kondisi -n yang dijelaskan sebelumnya, dan baca hasil setiap baris sebelum menjalankan baris berikutnya. Jika proses latihan sebelumnya sudah selesai, buat proses uji baru dan gunakan PID baru.

ps -o pid,ni,comm -p PID
renice -n 10 -p PID
ps -o pid,ni,comm -p PID

Baris pertama memeriksa keadaan awal, baris kedua mengirim permintaan penyesuaian, dan baris ketiga memeriksa nilai aktual. Jika NI tidak sesuai harapan, periksa pesan renice, izin, variabel lingkungan, dan apakah proses masih ada. Jangan langsung mengulangi perubahan atau menambahkan sudo tanpa mengetahui penyebabnya.

PID dapat dipakai kembali setelah proses berakhir. Pemeriksaan yang sudah lama dapat menunjuk pekerjaan berbeda; baca kembali perintah dan pemilik tepat sebelum penyesuaian. Pemeriksaan dan perubahan juga merupakan langkah terpisah, sehingga tidak membekukan identitas sasaran di antara keduanya.

Opsi dan cakupan sasaran

Bentuk Makna pada util-linux saat ini
-n NILAI Nilai absolut tanpa POSIXLY_CORRECT; perubahan relatif bila variabel itu ditetapkan.
--priority NILAI Memilih nilai nice absolut bila opsi didukung versi yang dipakai.
--relative DELTA Memilih penyesuaian relatif bila opsi didukung.
-p PID Memilih sasaran berdasarkan ID proses.
-u PENGGUNA Memilih proses milik pengguna yang ditentukan; cakupannya dapat luas.
-g PGID Memilih kelompok proses berdasarkan process group ID (PGID).

Kelompok proses pada -g berbeda dari grup akun pengguna. Penyesuaian kelompok proses atau pengguna dapat memengaruhi banyak pekerjaan sekaligus. Untuk latihan satu proses, gunakan -p dan PID yang sudah diverifikasi, bukan memperluas sasaran ke -u atau -g.

Perbedaan absolut dan relatif, pengaruh POSIXLY_CORRECT, serta cakupan opsi dijelaskan dalam manual renice util-linux.

Izin, pemulihan nilai, dan batas pengaruhnya

Pengguna biasa umumnya hanya dapat menyesuaikan proses miliknya dan menaikkan angka nice untuk menurunkan prioritas. Mengurangi angka nice agar prioritas naik memerlukan hak atau batas sumber daya yang mengizinkannya. Mencatat nilai awal berguna, tetapi tidak menjamin pengguna biasa dapat mengembalikannya setelah angka nice dinaikkan.

Aturan kepemilikan, kemampuan sistem, dan batas RLIMIT_NICE dijelaskan dalam manual Linux getpriority dan setpriority. Jika pemulihan ke nilai lebih rendah tidak diizinkan, jangan mengubah kebijakan keamanan hanya untuk menyelesaikan latihan; cukup gunakan proses uji yang dapat selesai sendiri.

Penyesuaian nice yang berhasil tidak menjamin pekerjaan lain langsung lebih cepat. Kelompok penjadwalan dan pengaturan CPU dapat memengaruhi pembagian sumber daya. Hambatan disk, memori, atau jaringan perlu diperiksa tersendiri; renice bukan pengganti diagnosis penyebab beban.

FAQ

Apa perbedaan nice dan renice?

Nice memulai perintah baru dengan penyesuaian nilai nice. Renice memilih proses yang sudah berjalan dan mengubah nilainya sesuai implementasi, opsi, lingkungan, dan izin yang berlaku.

Mengapa renice -n 10 tidak selalu menghasilkan NI 10?

Pada util-linux, -n menjadi penyesuaian relatif ketika POSIXLY_CORRECT ditetapkan. Periksa juga versi, izin, nilai awal, serta pesan kesalahan dan kolom NI sesudah perubahan.