Linux может одновременно выполнять потоки на разных ядрах CPU и делить время одного ядра между большим числом готовых потоков. Планировщик принимает решения согласно политике планирования, приоритету, привязке и нагрузке. Значение nice — один из входных параметров обычных политик разделения времени.
Процессы · Урок 8
Niceness
Узнайте, как значения nice влияют на вес планирования CPU для обычных процессов Linux.
Интерпретация значений nice
Общепринятый диапазон nice — от -20 до 19:
- Меньшее значение даёт задаче больший вес планирования относительно сопоставимых задач.
- Большее значение делает её «приятнее», предоставляя меньший относительный вес.
- Стандартное значение обычно равно
0.
Niceness не резервирует процент CPU и не гарантирует немедленное выполнение. Его влияние наиболее заметно, когда сопоставимые готовые задачи конкурируют за время CPU. Политики реального времени, cgroups, привязка CPU, ожидание ввода-вывода и другие механизмы могут доминировать в наблюдаемом поведении.
Какое значение nice даёт больший относительный вес CPU при одинаковой обычной политике планирования?
Просмотр niceness
В top значение nice отображает столбец NI. Его также можно запросить через ps:
$ ps -o pid,ni,pri,stat,cmd -p 3245
NI — видимое пользователю значение nice. Столбец PRI или похожий может быть производным приоритетом планировщика, шкала которого зависит от инструмента и класса планирования, поэтому не считайте два столбца взаимозаменяемыми.
Какой столбец top обычно показывает значение nice?
Запуск команды через `nice`
Используйте nice, чтобы запустить новую команду с изменённым значением:
$ nice -n 5 long-computation
Запрошенную поправку и поддерживаемый синтаксис можно проверить в локальном руководстве. Непривилегированный пользователь обычно может сделать команду более nice, увеличив значение. Для меньшего nice и, следовательно, более благоприятного веса планирования нужны соответствующие привилегии или настроенные ограничения ресурсов.
Что делает nice -n 5 long-computation?
Изменение существующего процесса через `renice`
Для уже работающего процесса используйте renice:
$ renice -n 10 -p 3245
Команда запрашивает значение nice 10 для PID 3245. Сначала проверьте цель, поскольку PID могут использоваться повторно, а затем подтвердите итоговое значение. Права зависят от владения, привилегий, ограничений ресурсов и системной политики. Обычно вы можете увеличить nice собственного процесса; обратное уменьшение без привилегий может быть запрещено.
Какой инструмент меняет значение nice существующего процесса?
Лаборатория Управление и мониторинг процессов Linux предоставляет контролируемую среду для просмотра и изменения nice. Сравнивайте конкурирующие задачи с нагрузкой на CPU, а не ожидайте заметной разницы в простаивающей системе.
Урок завершён
Вы завершили Niceness
Теперь вы можете интерпретировать и изменять niceness, не считая его гарантией CPU.
Читайте меньшие значения nice как больший относительный вес планирования.
Проверяйте
NIотдельно от производных полей приоритета.Используйте
niceпри запуске команды.Используйте
reniceдля существующего проверенного процесса.
Сохраните прогресс
Создайте бесплатный аккаунт, чтобы сохранить этот урок и продолжить на любом устройстве.
Создать бесплатный аккаунт