Perintah lengkap yang Anda inginkan adalah:
chrt -b 0 nice -n 19 ionice -c 2 -n 7 [command]
The chrt
perintah di awal akan beralih hal yang kelas penjadwalan batch, yang setara dengan menambahkan 0,5 dengan nilai bagus. Opsi -n untuk ionice adalah prioritas sederhana untuk opsi realtime ( -c 1
) dan best-effort ( -c 2
), dengan nilai yang lebih rendah menjadi prioritas yang lebih tinggi seperti nilai yang bagus (tetapi dalam kisaran 0-7). Namun, perintah ionice tidak sepenuhnya diperlukan, karena kelas penjadwalan I / O dan prioritas secara default berasal dari parameter penjadwalan CPU, dan nice -n 19
tersirat ionice -c 2 -n 7
.
Namun, Anda bisa mendapatkan penggunaan sumber daya minimal absolut dengan mengatur kelas penjadwalan CPU dan I / O agar tidak digunakan. Dalam kedua kasus, penjadwal 'idle' sebenarnya bukan penjadwal idle, dan Anda masih dapat menggunakan sumber daya, hanya saja semuanya akan memiliki prioritas lebih tinggi.
Untuk kelas penjadwalan CPU, ini juga menggunakan chrt
perintah, meskipun tanpa perlu nice
(prioritas harus diatur ke 0
dalam kelas penjadwalan siaga), dan terlihat seperti ini:
chrt -i 0 {command or PID}
The nice
perintah pada cermin Linux versi SVR4, yang berarti bahwa ia tidak dapat mengubah kelas penjadwalan, hanya bagus nilai (yang juga berperilaku berbeda pada Linux dari UNIX klasik, tapi itu OT bit). Karena kelas penjadwalan alternatif asli adalah POSIX.1E realtime SCHED_RR
dan SCHED_FIFO
, perintah untuk mengatur kelas penjadwalan akhirnya dipanggil chrt
. The -i
menspesifikasikan opsi untuk menggunakan SCHED_IDLE
kelas penjadwalan
Untuk kelas penjadwalan I / O, Anda gunakan ionice
. Perintah persisnya terlihat seperti ini:
ionice -c 3 {command or PID}
The -c
pilihan menspesifikasikan apa penjadwalan kelas untuk digunakan, dan 3 adalah nomor untuk kelas menganggur. Perhatikan bahwa tergantung pada penjadwal I / O blok mana yang sedang digunakan, ini mungkin tidak benar-benar berdampak apa pun. Secara khusus, noop
penjadwal I / O tidak mendukung prioritas atau kelas penjadwalan sama sekali, dan saya cukup yakin deadline
penjadwal (baik yang lama, dan yang blk-mq) juga tidak.
Jika Anda ingin melakukan ini secara terprogram, baik untuk program Anda sendiri, atau untuk menyesuaikan hal-hal untuk proses lain, lihat halaman manual untuk panggilan sistem sched_setscheduler
dan ioprio_set
(meskipun keduanya layak dibaca jika Anda hanya ingin latar belakang yang lebih banyak juga).