Eu tenho alguns trabalhos cron para manutenção básica que não consomem muitos recursos.
Eu também tenho agendamento de tarefas personalizado (que é apenas chamar um arquivo .php e passar informações via GET, ou seja: cronjob.php? Param1 = param ...). Isso pode aumentar rapidamente.
Eles apenas chamam comandos do sistema e executam programas externos (o Nmap é um deles). Eles geralmente não demoram muito também.
Enfim, alguém pode me dizer, aproximadamente, que ponto é demais? Eu sei que é difícil dizer, pois depende de qual trabalho está sendo executado e com que frequência, mas em que momento o programa crontab começa a "lutar"? Alguem tem alguma idéia?
Obrigado.
Respostas:
Eu não me preocuparia com a carga no próprio "programa crontab" (cron); é a carga geral do sistema em que você pode prestar atenção. Observe as métricas (utilização da CPU, taxas io, tempos de resposta da consulta à web) durante o período em que seus trabalhos estão sendo executados - há um aumento notável? é ruim o suficiente para atrapalhar o uso real do sistema?
Se os programas "não demorarem", é um bom sinal de que não há problema.
Se você ainda estiver preocupado, pode fazer outras coisas para limitar a carga: execute os trabalhos com o
nice
objetivo de reduzir sua prioridade, execute-os sequencialmente em vez de simultaneamente, e assim por diante.fonte
Apenas pesquisando em nossos sistemas de produção, o maior deles teve 862 trabalhos agendados (entre todos os usuários, o maior deles, raiz, é 117), e isso não ocorre muito com tantos.
Se você iniciar 60 trabalhos a cada minuto, 24 horas por dia, 7 dias por semana e todos eles levarem dois segundos para concluir, provavelmente você terminará em um mundo de dores. Mas, desde que a carga de trabalho seja equilibrada (com tempos de silêncio e outros), ela deve se recuperar. Fique de olho nas cargas do sistema durante os horários de pico (% da CPU, E / S de disco, ...) e se preocupe mais com isso do que o número de trabalhos reais.
Esta pergunta é semelhante a "Quantos processos posso executar antes de entrar em problemas?". A melhor aposta é experimentá-lo, pois depende do seu sistema. O próprio Cron tem poucas limitações que eu encontrei, mas, se você está tentando agendar dezenas de milhares de empregos, está colocando mais pressão nele do que eu já tive.
Meça, não adivinhe!
fonte
O próprio Cron essencialmente nunca começará a lutar; o sistema ficará completamente atolado com a carga de trabalho muito antes que isso aconteça.
fonte
Eu concordo com todas as respostas presentes aqui. Para entendê-lo com uma perspectiva um pouco diferente, pense nos cronjobs como usuários da sua plataforma.
Digamos que um usuário utilize 1% da sua CPU (operações CRUD / rede etc.). Se houver 100 desses usuários (cronjobs) simultaneamente, sua CPU atingirá um limite e o servidor poderá não conseguir processar, resultando em uma falha.
Voltando à pergunta: "Quantos trabalhos cron são demais?" - Desde que sua análise sugira que pode não haver um aumento repentino nos recursos , até 100 cronjobs estão prontos.
fonte