Cronjob под Ubuntu работает медленно

Я настроил cronjob (запуск скрипта bash) с crontab -e который локально копирует некоторые данные с одного жесткого диска на другой (rsync) и после этого сравнивает их (diff).

Я выполнил сценарий вручную, чтобы увидеть, все ли работает как запланировано. Он скопировал 7 ГБ и занял около 30 минут. Когда он запускается как cronjob, он занимает 4 часа, снова копируя 7 ГБ.

Данные и сценарий не изменились с момента ручного вызова и вызова сценария cronjob.

  • Может быть, cronjobs работают как демоны с очень небольшим приоритетом?
  • Если так, как я могу это изменить?

1 ответ

Решение

Если мне не изменяет память, cron работает с хорошим уровнем 2.

использование nice, Пример:

nice -20 {script} >>/dev/null 2>&1

(или немного выше (-10, -15), если -20 перегружает вашу систему). Все "дети" внутри {script} будут работать с одинаковыми nice уровень как "родитель".


  • man-страница для хорошего.
  • Существует также возможность планирования ввода-вывода.
  • "Nicenesses" варьируется от -20 (наиболее благоприятное планирование) до 19 (наименее благоприятное планирование).
  • Процесс с хорошим +15 получит 25% процессорного времени от процесса с хорошим +0 (то есть (20 - 15)/(20 - 0) = 0,25).
Другие вопросы по тегам