Чтобы быть более конкретным:
У меня есть машина Debian Squeeze Linux с веб-приложением, которое должно стать доступным по всей планете. До сих пор у меня была куча ресурсоемких cronjobs каждую ночь (в Европе) без особого влияния на взаимодействие с региональными пользователями. Однако сейчас я не могу себе позволить, чтобы сервер в любой момент стал медленнее.
Есть ли способ заставить все скрипты cron (cron.daily и т. Д.) Наследовать хороший и ионный приоритет?
Спасибо за участие!
Мигель
Возможно, вы захотите настроить службу crond для работы с уже установленными nice и ionice.
http://b.zekjur.net/2012/09/23/systemd-ionice.html
Однако я его не тестировал, поэтому не могу поручиться за него так или иначе.
Если это не сработает или не поможет, вам необходимо настроить контрольные группы.
Да...
У вас может быть сценарий источника определенного набора переменных среды или просто запустить nice / ionice из сценария ...
Однако это не лучшее решение вашей проблемы.
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