Повна потрібна команда:
chrt -b 0 nice -n 19 ionice -c 2 -n 7 [command]
chrt
Команда на початку буде перемикатися речі класу пакетного планування, що еквівалентно додаванню 0,5 до гарної вартості. Варіант -n для ionice - це простий пріоритет для варіантів реального часу ( -c 1
) та найкращих зусиль ( -c 2
), при цьому нижчі значення мають вищий пріоритет, як і приємні значення (але в діапазоні 0-7). Однак команда ionice не є суворо необхідною, оскільки клас планування вводу / виводу та пріоритет за замовчуванням виходять із параметрів планування процесора, і це nice -n 19
означає ionice -c 2 -n 7
.
Однак ви можете отримати абсолютне мінімальне використання ресурсів, встановивши класи і графік процесора, і введення / виводу в режимі очікування. В обох випадках "простої" планувальники - це насправді непрацюючі планувальники, і ви все одно зможете використовувати ресурси, це просто те, що все матиме більш високий пріоритет.
Для класу планування процесора, він також використовує chrt
команду, хоча і не потребує nice
(пріоритет повинен бути встановлений 0
у класі простою планування), і виглядає так:
chrt -i 0 {command or PID}
nice
Команда на Linux дзеркалах версії SVR4, що означає , що він не може змінити клас планування, тільки хороше значення (яке також веде себе по- різному на Linux , ніж класичний UNIX, але це трохи OT). Оскільки вихідними альтернативними класами планування були POSIX.1E в реальному часі, SCHED_RR
і SCHED_FIFO
команда встановити класи планування в кінцевому підсумку викликалася chrt
. У -i
параметр вказує , використовувати SCHED_IDLE
клас планування
Для класу планування вводу / виводу ви використовуєте ionice
. Точна команда виглядає так:
ionice -c 3 {command or PID}
В -c
опції визначає , що планування клас використання, а 3 це число для дозвільного класу. Зауважте, що залежно від того, який планувальник блоків вводу-виводу використовується, це може насправді нічого не впливати. Зокрема, noop
планувальник вводу-виводу взагалі не підтримує пріоритетів або класів планування, і я впевнений, що deadline
планувальники (і застарілий, і blk-mq) теж не мають.
Якщо ви хочете робити це програмно, або для власної програми, або для налаштування речей для інших процесів, ознайомтеся із довідковими сторінками для sched_setscheduler
та ioprio_set
системних викликів (хоча обидва варто прочитати, якщо ви просто хочете отримати більше фону).