Cronjob no Ubuntu roda devagar

3

Eu configurei um cronjob (executando um script bash) com crontab -e , que copia localmente alguns dados de um disco rígido para outro ( rsync ) e depois os compara ( diff ).

Eu executei o script manualmente para ver se tudo funciona como planejado. Copiou 7 GB e levou cerca de 30 min. Quando é iniciado como cronjob, leva 4h, novamente copiando 7 GB.

Os dados e o script não foram alterados desde a chamada manual e a chamada do cronjob do script.

  • Pode ser que os cronjobs sejam executados como daemons com pouca prioridade?
  • Se sim, como posso mudar isso?
por Willi Mentzel 10.03.2016 / 12:26

1 resposta

4

Se minha memória me servir bem, o cron roda com um bom nível 2.

Use nice . Exemplo:

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

(ou um pouco mais alto (-10, -15) se -20 estiver sobrecarregando muito o seu sistema). Todos os "filhos" dentro de {script} serão executados com o mesmo nível nice que o "pai".

  • página de manual para agradar .
  • Há também ionice para agendamento de IO.
  • "Nicenesses" varia de -20 (agendamento mais favorável) a 19 (agendamento menos favorável).
  • Um processo com um bom +15 receberá 25% do tempo de CPU de um processo com um bom +0 (ou seja, (20 - 15) / (20 - 0) = 0,25).
por Rinzwind 10.03.2016 / 12:34

Tags