Чи встановлення вищого рівня приємного процесу є ефективним способом зменшити його вплив на завантаження системи / час процесора?


10

У мене є робота rsync cron, яка підштовхує навантаження сервера і запускає сповіщення монітора. Якби я встановив, що завдання буде виконуватися з високим приємним рівнем, чи може це ефективно зменшити вплив, який він надає на значення навантаження системи?


Для rsync було б ефективніше використовувати її комутатори для зменшення стиснення або обмеження використання пропускної здатності.
Немо

Відповіді:


9

Це не зменшить ваше навантаження.

Це дозволить іншим процесам частіше використовувати час процесора, якщо є можлива суперечка ресурсів (кілька процесів "конкурують" за недостатньо доступний час процесора).


9

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

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

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

Так, так, ви хочете виконати завдання cron на більш високому рівні, ніж інші процеси, якщо ви хочете, щоб інші процеси отримали пріоритет.

Для цього ви хочете, щоб ваш cron script був виконаний так:

/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 не в змозі дозволити ноксированному процесу без проблем використовувати всі ресурси, які вони могли б реально використати (усі вони залишаються чекати більшу частину часу без жодних вигод).
Немо

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


Ви точно хочете використовувати групи для збалансування системних ресурсів. Це дозволяє розділити ресурси за вашим бажанням (процесор, пам'ять, IO диска, пропускна здатність диска), а в ситуаціях з низьким навантаженням навіть "низький пріоритет" процеси отримують максимальну продуктивність на відміну від трюків у режимі користувача, які часто закінчуються сповільненням процесу з низьким пріоритетом весь час.
Мікко Ранталайнен
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.