Foi-me dito para mudar para nginx ou pelo menos para mpm_worker. Mas realmente, como posso estimar se meu servidor não está realmente sobrecarregado mesmo com mpm_prefork?
Meu sistema é:
- GCP 1 CPU + 3,75 GB
- Debian 8
- Apache 2.4 com mpm_prefork
- Cache de verniz, Memcache
Algumas configurações do php.ini
max_execution_time = 30
max_input_time = 60
memory_limit = 1536M
Alguns outros vários módulos padrão do apache, sem fastcgi e sem php-fpm.
<IfModule mpm_prefork_module>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxRequestWorkers 250
MaxConnectionsPerChild 0
</IfModule>
KeepAlive Off
E eu tenho cerca de 20 pequenos blogs wordpress nele.
Então, quantos usuários simultâneos posso reunir em todos os sites? Não preciso de números exatos. Eu quero entender se é 10s 100s ou 1000s? Provavelmente não 10000s. Mas se for algo como 250 on-line ao mesmo tempo - acho que ainda é bom por enquanto.
Além disso, devo definir o limite de memória para 3 GB? OU deixar os 2GB restantes para serem usados pelo verniz é uma boa ideia?
Completed 1000 requests
Finished 1000 requests
Server Software: Apache/2.4.10
Server Hostname: sochi.asp.sale
Server Port: 443
SSL/TLS Protocol: TLSv1.2,ECDHE-RSA-AES256-GCM-SHA384,2048,256
Document Path: /
Document Length: 199165 bytes
Concurrency Level: 100
Time taken for tests: 12.041 seconds
Complete requests: 1000
Failed requests: 0
Total transferred: 199546499 bytes
HTML transferred: 199165000 bytes
Requests per second: 83.05 [#/sec] (mean)
Time per request: 1204.067 [ms] (mean)
Time per request: 12.041 [ms] (mean, across all concurrent requests)
Transfer rate: 16184.28 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 12 711 1471.9 307 6868
Processing: 23 492 960.2 253 7588
Waiting: 2 302 957.0 76 7043
Total: 35 1203 2005.6 524 7629
Percentage of the requests served within a certain time (ms)
50% 524
66% 534
75% 608
80% 644
90% 7164
95% 7186
98% 7188
99% 7189
100% 7629 (longest request)
Em um palpite, provavelmente menos de 100 antes de começar a desacelerar. Para referência, eu testei um servidor de clientes esta semana. As especificações eram: 4 núcleos 4 GB de RAM 2 núcleos litespeed com manipulador lsapi PHP 7 MariaDB 10 E apenas um site muito bem codificado.
Pode levar 300 conexões simultâneas na página mais lenta, antes de começar a carregar mais lentamente do que 4 segundos por página.
Quando não estava sob carga, estava recebendo ~ 50ms TTFB
Ao dizer isso, não estou muito familiarizado com o que o Nginx + verniz pode manipular, então você pode obter resultados semelhantes. No entanto, eu recomendaria adicionar núcleos extras e diminuir esse limite de memória do PHP. Se um blog wordpress simples precisa de mais de 256 milhões, então algo está errado.
A maneira mais fácil de descobrir é carregar o teste você mesmo -> https://httpd.apache.org/docs/2.4/programs/ab.html
Considerando que você tem verniz, pode facilmente ser > 1000 se: