Perintah lengkap yang Anda inginkan adalah:
chrt -b 0 nice -n 19 ionice -c 2 -n 7 [command]
The chrtperintah 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 19tersirat 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 chrtperintah, meskipun tanpa perlu nice(prioritas harus diatur ke 0dalam kelas penjadwalan siaga), dan terlihat seperti ini:
chrt -i 0 {command or PID}
The niceperintah 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_RRdan SCHED_FIFO, perintah untuk mengatur kelas penjadwalan akhirnya dipanggil chrt. The -imenspesifikasikan opsi untuk menggunakan SCHED_IDLEkelas penjadwalan
Untuk kelas penjadwalan I / O, Anda gunakan ionice. Perintah persisnya terlihat seperti ini:
ionice -c 3 {command or PID}
The -cpilihan 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, nooppenjadwal I / O tidak mendukung prioritas atau kelas penjadwalan sama sekali, dan saya cukup yakin deadlinepenjadwal (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_setschedulerdan ioprio_set(meskipun keduanya layak dibaca jika Anda hanya ingin latar belakang yang lebih banyak juga).