Является ли установка более высокого приятного уровня для процесса эффективным способом уменьшения его влияния на нагрузку на систему / время процессора?


10

У меня есть задание rsync cron, которое загружает сервер и запускает оповещения монитора. Если бы я настроил выполнение задания с хорошим хорошим уровнем, это эффективно уменьшило бы его влияние на значения нагрузки системы?


Для rsync было бы более эффективно использовать его коммутаторы для уменьшения сжатия или ограничения использования полосы пропускания.
Немо

Ответы:


9

Это не уменьшит вашу нагрузку.

Это позволит другим процессам использовать процессорное время чаще, если существует возможный конфликт ресурсов (несколько процессов «конкурируют» за недостаточно доступного процессорного времени).


9

Изменение значения nice не приведет к прямому снижению нагрузки на систему. Однако его можно использовать, чтобы оставить больше ресурсов доступным для остальных процессов, что, как я подозреваю, именно то, что вам действительно нужно.

С http://linux.101hacks.com/monitoring-performance/hack-100-nice-command-examples/

Ядро решает, сколько процессорного времени требуется для процесса, на основе значения nice. Возможный диапазон допустимых значений: от -20 до 20. Процесс с хорошим значением -20 имеет очень высокий приоритет. Процесс с хорошим значением 20 имеет очень низкий приоритет.

Так что да, вы хотите запускать задание cron на более высоком уровне, чем другие процессы, если вы хотите, чтобы другие процессы получили приоритет.

Для этого вы хотите, чтобы ваш cron-скрипт выполнялся так:

/bin/nice -n 10 /path/to/cron-script

Это запустит скрипт cron со скоростью, увеличенной на 10. Возможно, вы захотите немного протестировать, чтобы найти хороший (каламбур) баланс между оставшимися процессами и временем выполнения скрипта.

Смотрите также Как приятно работать? и http://www.cyberciti.biz/faq/change-the-nice-value-of-a-process/ для получения более подробной информации.


5

Изменение хорошего уровня процесса вряд ли повлияет на значение загрузки системы. Значение загрузки системы - это средняя длина очереди выполнения , которая в основном равна числу процессов, желающих использовать ЦП.

Если вы запускаете процесс с привязкой к процессору (rsync - нет, но только для примера), то он всегда будет хотеть использовать процессорное время, когда есть какие-то доступные. Поскольку он всегда хочет работать, он добавит значение нагрузки 1,0 к значению загрузки системы. Неважно, каков уровень управления процессом, потому что на среднюю длину очереди выполнения не влияет порядок процессов в очереди выполнения.


Это важно помнить. Если вы запускаете много закрытых процессов, нагрузка на систему будет выглядеть очень высокой, даже если на самом деле никакая реальная работа не замедляется. В некоторых случаях загрузка выявляет реальную проблему, т. Е. То, что Linux не может позволить процессу niced использовать все ресурсы, которые он мог бы использовать без проблем (все они большую часть времени ждут бездействия).
Немо

3

Вы можете рассмотреть 3 способа уменьшить влияние вашего процесса на нагрузку на систему / время процессора:

  • Используйте niceкоманду, чтобы вручную уменьшить приоритет задачи.
  • Используйте cpulimitкоманду, чтобы повторно приостановить процесс, чтобы он не превышал определенного предела.
  • Используйте Linux built-in control groups, механизм, который сообщает планировщику ограничить количество ресурсов, доступных для процесса.

Ресурсы

http://blog.scoutapp.com/articles/2014/11/04/restricting-process-cpu-usage-using-nice-cpulimit-and-cgroups


Вы определенно хотите использовать cgroups для балансировки системных ресурсов. Это позволяет разделять ресурсы по своему усмотрению (процессор, память, дисковый ввод-вывод, пропускная способность диска) и в ситуациях с низкой нагрузкой даже процессы с «низким приоритетом» получают максимальную производительность в отличие от приемов пользовательского режима, которые часто в конечном итоге замедляют процесс с низким приоритетом все время.
Микко Ранталайнен
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.