Назад | Перейти на главную страницу

Сколько пользователей может принять мой сервер?

Мне сказали перейти на nginx или хотя бы на mpm_worker. Но на самом деле, как я могу оценить, действительно ли мой сервер не перегружен даже с помощью mpm_prefork?

Моя система:

  1. GCP 1 CPU + 3,75 ГБ
  2. Debian 8
  3. Apache 2.4 с mpm_prefork
  4. Varnish cache, Memcache

Некоторые настройки 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, если:

  • Вы правильно настроили Varnish (VCL)
  • Блоги не имеют динамического характера (то есть не магазины на базе Woocommerce) - в основном статические статьи.

Предположительно, менее 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