У системних файлах служби можна встановити наступні параметри, пов’язані з плануванням (зі systemd.exec
сторінки man , виправте мене, якщо я помиляюся):
Nice Встановлює стандартний рівень за замовчуванням (пріоритет планування) для виконуваних процесів. Бере ціле число між -20 (найвищий пріоритет) та 19 (найнижчий пріоритет). Докладніше див. Setpriority (2) .
Який знайомий приємний рівень. Здається, його ефект дещо знижується завдяки функції "автогрупи" останніх ядер Linux. Тому наведені нижче варіанти можуть бути те, що я дійсно хотів би встановити, щоб процеси не дуже добре поводилися на моєму робочому столі.
CPUSchedulingPolicy Встановлює політику планування процесора для виконуваних процесів. Бере одну з інших, партії, простою, фіфо або rr. Детальніше див. У sched_setscheduler (2) .
CPUSchedulingPriority Встановлює пріоритет планування процесора для виконуваних процесів. Доступний діапазон пріоритетів залежить від обраної політики планування процесора (див. Вище). Для політик планування в режимі реального часу може бути використане ціле число від 1 (найнижчий пріоритет) до 99 (найвищий пріоритет). Детальніше див. У sched_setscheduler (2) .
CPUSchedulingResetOnFork Бере бульний аргумент. Якщо це правда, підвищені пріоритети і політики планування процесора будуть скинуті, коли виконані процеси розщеплюються, і, отже, не можуть просочуватися в дочірні процеси. Детальніше див. У sched_setscheduler (2) . Типово встановлено значення false.
Я розумію останній варіант. Я пояснюю з пояснення перших двох, що я можу вибрати політику планування, а потім, враховуючи цю політику, пріоритет. Мені не зовсім зрозуміло, що я повинен вибрати для того, який вид завдань. Наприклад, чи безпечно вибирати "в режимі очікування" для завдань резервного копіювання (відносно інтенсивно процесор, оскільки дедуплікація), або інший краще підходить?
Взагалі, я отримую зрозумілий огляд кожної політики, кожного її пріоритету та відповідності певним цілям. Також цікавить взаємодія з приємним рівнем.
Поруч з плануванням процесора є IO планування. Я думаю, це відповідає ionice
(виправте мене, якщо я помиляюся).
IOSchedulingClass Встановлює клас планування вводу / виводу для виконаних процесів. Бере ціле число між 0 і 3 або один з рядків жоден, в режимі реального часу, найкращих зусиль або простою. Докладніше див. У ioprio_set (2) .
IOSchedulingPriority Встановлює пріоритет планування вводу / виводу для виконуваних процесів. Бере ціле число між 0 (найвищий пріоритет) і 7 (найнижчий пріоритет). Доступні пріоритети залежать від обраного класу планування вводу / виводу (див. Вище). Докладніше див. У ioprio_set (2) .
Ми бачимо ту саму структуру, що і для планування процесора. Я також шукаю таку ж інформацію.
Для всіх параметрів "Планування", вказані на мене сторінки недостатньо зрозумілі, переважно в перекладі речей на дещо технічно схильну точку зору користувача робочого столу.
nice
значення застосовується).