Мне сказали перейти на nginx или хотя бы на mpm_worker. Но на самом деле, как я могу оценить, действительно ли мой сервер не перегружен даже с помощью mpm_prefork?
Моя система:
Некоторые настройки php.ini
max_execution_time = 30
max_input_time = 60
memory_limit = 1536M
Некоторые другие различные стандартные модули apache, без fastcgi и без php-fpm.
<IfModule mpm_prefork_module>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxRequestWorkers 250
MaxConnectionsPerChild 0
</IfModule>
KeepAlive Off
И у меня есть около 20 небольших WordPress блогов.
Итак, сколько одновременных пользователей я могу собрать вместе на всех сайтах? Мне не нужны точные цифры. Я хочу понять, это 10s 100 или 1000s? Наверное, не 10000. Но если это что-то около 250 одновременных онлайн - я думаю, что пока все еще хорошо.
Кроме того, следует ли установить ограничение памяти на 3 ГБ? ИЛИ пусть оставшиеся 2Гб использовать под лак - это хорошая идея?
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)
Учитывая, что у вас есть лак, он легко может быть> 1000, если:
Предположительно, менее 100, прежде чем он начнет замедляться. Для справки, на этой неделе я провел нагрузочное тестирование сервера клиентов. Спецификации были: 4 ядра 4 ГБ ОЗУ 2 ядра litespeed с обработчиком lsapi PHP 7 MariaDB 10 И просто действительно хорошо закодированный сайт.
Может потребоваться 300 одновременных подключений к самой медленной странице, прежде чем она начнет загружаться медленнее, чем 4 секунды на страницу.
Когда не под нагрузкой, TTFB достигал ~ 50 мс.
Говоря это, я не слишком хорошо знаком с тем, с чем может справиться Nginx + varnish, поэтому вы можете получить аналогичные результаты. Однако я бы рекомендовал добавить дополнительные ядра и снизить ограничение памяти PHP. Если простому блогу на wordpress требуется более 256 МБ, значит, что-то не так.
Самый простой способ узнать это - провести нагрузочный тест самостоятельно -> https://httpd.apache.org/docs/2.4/programs/ab.html