
Estou construindo um aplicativo de "tráfego intenso" que pode ir de 0 a 50.000 clientes de uma só vez, em poucos minutos. Pensei em pedir ajuda a vocês para entender se estou fazendo algo errado aqui.
Atualmente estou testando com loader.io, minha configuração para este teste de carga é de 0 a 10.000 clientes em 1 minuto. A única coisa que o testador faz é carregar a página de login, nada mais, nem mesmo fazer login. O tamanho da página é 793 KB, equivalendo a aproximadamente 400 ms de tempo de carregamento em um navegador real.
[01-Mar-2018 09:57:48] WARNING: [pool app.com] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 8 children, there are 4244 idle, and 4607 total children
[01-Mar-2018 09:57:49] WARNING: [pool app.com] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 16 children, there are 4216 idle, and 4615 total children
[01-Mar-2018 09:57:50] WARNING: [pool app.com] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 32 children, there are 4211 idle, and 4631 total children
[01-Mar-2018 09:57:52] WARNING: [pool app.com] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 32 children, there are 4179 idle, and 4663 total children
[01-Mar-2018 09:57:54] WARNING: [pool app.com] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 32 children, there are 4181 idle, and 4695 total children
[01-Mar-2018 09:57:57] WARNING: [pool app.com] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 32 children, there are 4244 idle, and 4727 total children
[01-Mar-2018 09:57:58] WARNING: [pool app.com] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 32 children, there are 4412 idle, and 4759 total children
Minha configuração do php-fpm é a seguinte:
pm.max_children 3000
pm.max_requests 200
pm dynamic
pm.start_servers 1500
pm.min_spare_servers 300
pm.max_spare_servers 1500
Especificações do servidor host:
AMD Opteron(tm) Processor 6344
Core Name
Abu Dhabi
# of Cores
12-Core
# of Threads
12
Operating Frequency
2.6 GHz
Hyper Transports
6.40 GT/s
L2 Cache
6 x 2MB
L3 Cache
2 x 8MB
Manufacturing Tech
32 nm
50GB RAM (I have provided this to the container), server has 64 total.
E estranhamente, mesmo com esta configuração, ainda recebo mensagens de "parece ocupado"!
A coisa mais importante a lembrar aqui é que normalmente temos pouco ou nenhum tráfego, mas esperamos até 50.000 usuários em minutos. Vocês podem me ajudar com esse erro, por favor pessoal. Obrigado!
Responder1
Você precisa ter em mente que ativar esses trabalhadores adicionais leva tempo e, como você pode ver nos logs, o php-fpm está gerando 32 filhos por vez. A "correção" mais fácil seria definir os servidores mínimo e máximo com o mesmo valor, dessa forma, você não precisa esperar que eles sejam ativados.
Além disso, se possível, em vez de tentar fazer algo assim, tente implementar o cache, pois sempre será mais rápido.