Olá pessoal,
Preciso executar uma rotina pelo crontabs a cada minuto que executa uma URL 60 vezes via CURL. Fiz o seguinte comando:
* * * * * for i in `seq 0 59`; do curl -s
https://url.php; done
Essa linha executa 60 registros sem problemas. Porém preciso fazer isso 30 vezes então copiei esta linha 30 vezes no crontab. Que executa um total de 1800 registros a cada minuto.
Porém fiz isso para testar a arquitetura de disparos, quando eu substituo pelo meu script real (que leva alguns segundos para ser processado), a quantidade cai de 1800 registros para 500 por minuto.
Como elevou em segundos o meu processamento de cada script, gera uma fila de processamento. O que antes ele conseguia concluir o processamento com 30 scripts por minuto, agora executa com 8.
Como eu aumento a quantidade de requisições simultâneas? Segue abaixo o meu apache2.conf:
<IfModule mpm_prefork_module>
StartServers 8
MinSpareServers 5
MaxSpareServers 20
ServerLimit 256
MaxClients 200
MaxRequestsPerChild 4000
</IfModule>
<IfModule mpm_worker_module>
StartServers 2
MinSpareThreads 25
MaxSpareThreads 75
ThreadLimit 64
ThreadsPerChild 25
MaxClients 200
MaxRequestsPerChild 4000
</IfModule>
Estou tentando rodar em uma VPS de 32 GB de memória 8 vCPUs, Linux Ubuntu.
Obs: Já tentei alterar os parâmetros de MaxClients e ServerLimit para 950, reiniciei o apache e mesmo assim somente consigo executar 8 scripts concorrentes.