İstediğiniz tam komut:
chrt -b 0 nice -n 19 ionice -c 2 -n 7 [command]
Başlangıçtaki chrt
komut, şeyleri toplu çizelgeleme sınıfına geçirir, bu da güzel değere 0,5 eklenir. İyonice için -n seçeneği, gerçek zamanlı ( -c 1
) ve en iyi çaba ( -c 2
) seçenekleri için basit bir önceliktir , daha düşük değerler aynı güzel değerler gibi daha yüksek önceliğe sahiptir (ancak 0-7 aralığında). Ancak, I / O zamanlama sınıfı ve önceliği varsayılan olarak CPU zamanlama parametrelerinden türetildiğinden ve nice -n 19
ima ettiğinden, ionice komutu kesinlikle gerekli değildir ionice -c 2 -n 7
.
Ancak, hem CPU hem de G / Ç zamanlama sınıflarını boşta olarak ayarlayarak mutlak minimum kaynak kullanımını elde edebilirsiniz. Her iki durumda da, 'boşta' zamanlayıcılar aslında boşta zamanlayıcılar değildir ve kaynakları kullanmaya devam edebilirsiniz, bu sadece her şeyin daha yüksek önceliğe sahip olacağıdır.
CPU zamanlama sınıfı için bu chrt
, gerek olmadan da komutu kullanır nice
(öncelik 0
boşta zamanlama sınıfında ayarlanmalıdır ) ve şöyle görünür:
chrt -i 0 {command or PID}
nice
Linux aynalar SVR4 versiyonu, bu zamanlama sınıfını, sadece güzel değerini değiştiremezsiniz (aynı zamanda klasik UNIX daha Linux üzerinde farklı davranıyorsa, ama bu biraz OT var) demek olduğunu üzerinde komut. Orijinal alternatif zamanlama sınıfları POSIX.1E gerçek zamanlı olduğundan SCHED_RR
ve SCHED_FIFO
zamanlama sınıflarını ayarlama komutu çağrıldı chrt
. Bu -i
seçenek, SCHED_IDLE
programlama sınıfını kullanmayı belirtir
I / O zamanlama sınıfı için şunu kullanın ionice
. Tam komut şöyle görünür:
ionice -c 3 {command or PID}
-c
Seçenek belirtir kullanım ne zamanlama sınıfı ve 3 boşta sınıf için sayıdır. Hangi blok I / O zamanlayıcısının kullanıldığına bağlı olarak, bunun aslında hiçbir şeyi etkilemeyebileceğini unutmayın. Özellikle, noop
I / O zamanlayıcı hiç öncelikleri veya zamanlama sınıflarını desteklemiyor ve eminim deadline
zamanlayıcılar (hem eski hem de blk-mq bir) ya da değil.
Bunu kendi programınız için veya diğer işlemler için bir şeyler ayarlamak üzere programlı olarak yapmak istiyorsanız, sched_setscheduler
ve ioprio_set
sistem çağrıları için man sayfalarına bakın (her ikisi de daha fazla arka plan istiyorsanız, her ikisi de okumaya değer).