Назад | Перейти на главную страницу

Можно ли назначить хороший и ионный приоритет всем скриптам, выполняемым демоном cron?

Чтобы быть более конкретным:

У меня есть машина Debian Squeeze Linux с веб-приложением, которое должно стать доступным по всей планете. До сих пор у меня была куча ресурсоемких cronjobs каждую ночь (в Европе) без особого влияния на взаимодействие с региональными пользователями. Однако сейчас я не могу себе позволить, чтобы сервер в любой момент стал медленнее.

Есть ли способ заставить все скрипты cron (cron.daily и т. Д.) Наследовать хороший и ионный приоритет?

Спасибо за участие!

Мигель

Возможно, вы захотите настроить службу crond для работы с уже установленными nice и ionice.

http://b.zekjur.net/2012/09/23/systemd-ionice.html

Однако я его не тестировал, поэтому не могу поручиться за него так или иначе.

Если это не сработает или не поможет, вам необходимо настроить контрольные группы.

Да...

У вас может быть сценарий источника определенного набора переменных среды или просто запустить nice / ionice из сценария ...

Однако это не лучшее решение вашей проблемы.

  • Можете ли вы компенсировать или расположить скрипты, чтобы они не боролись за ресурсы?
  • Вы понимаете закономерности синхронизации или активности системы? Например. Между 02:00 и 04:00 в системе очень мало пользователей, и сейчас хорошее время для запуска сценариев обслуживания.
  • У вас достаточно ресурсов на вашем сервере?
  • nice и ionice не являются хорошими долгосрочными решениями. ionice, на самом деле не влияет на некоторые алгоритмы планирования ядра Linux, основанные на производительности. Работает с Планировщик CFQ, но есть вероятность, что вы захотите использовать планировщик сроков в серверной системе. Это может иметь большее влияние, чем попытка навязать процессы приятным / ионным.

Вам, вероятно, лучше всего запустить эти задания cron под отдельным пользователем Linux, который вы можете ограничить более низким приоритетом. Допустим, у вас есть такой пользователь batchuser. В твоем /etc/security/limits.conf, вы хотите добавить запись для этого пользователя (от -19 до 19, где 19 - самый низкий приоритет):

batchuser    -       priority        19

Тогда любой процесс, запущенный этим пользователем, будь то из cron или нет, унаследует этот приоритет. Никаких изменений в скриптах, никаких env или профилей для установки.

http://manpages.debian.org/cgi-bin/man.cgi?query=limits.conf