Рейтинг:0

Время отклика Apache2 ужасно после включения модуля php-fpm

флаг cn

Я запускаю Apache2 на Debian 11 VPS.Я написал API и пытаюсь провести его стресс-тестирование через внешний сервер с помощью ApacheBench.

При включенном mpm_prefork и отключенном php8.0-fpm время отклика 95-го процентиля составляет около 30 мс. Результат выглядит следующим образом:

Серверное ПО: Apache/2.4.52
Имя хоста сервера: XXX.XXX.com
Порт сервера: 443
Протокол SSL/TLS: TLSv1.2,ECDHE-RSA-AES256-GCM-SHA384,4096,256
Временный ключ сервера: X25519 253 бита
Имя сервера TLS: XXX.XXX.com

Путь к документу: /v1/module
Длина документа: 370 байт

Уровень параллелизма: 100
Время, затраченное на тесты: 2,783 секунды
Полные запросы: 1000
Неудачные запросы: 0
Запросы Keep-Alive: 1000
Всего передано: 845001 байт
Передано HTML: 370000 байт
Запросов в секунду: 359,28 [#/сек] (среднее)
Время на запрос: 278,336 [мс] (среднее)
Время на запрос: 2,783 [мс] (в среднем по всем одновременным запросам)
Скорость передачи: получено 296,48 [Кбайт/сек]

Время соединения (мс)
              мин. среднее[+/-sd] медиана макс.
Подключить: 0 14 157,2 0 2295
Обработка: 17 26 3,3 25 44
Ожидание: 17 26 3,3 25 44
Итого: 17 40 157,8 25 2330

Процент запросов, обслуженных за определенное время (мс)
  50% 25
  66% 26
  75% 27
  80% 28
  90% 30
  95% 33
  98% 41
  99% 282
 100% 2330 (самый длинный запрос)

Когда mpm_prefork все еще включен, но при переключении на php8.0-fpm время отклика становится смешным. Результат выглядит следующим образом:

Серверное ПО: Apache/2.4.52
Имя хоста сервера: XXX.XXX.com
Порт сервера: 443
Протокол SSL/TLS: TLSv1.2,ECDHE-RSA-AES256-GCM-SHA384,4096,256
Временный ключ сервера: X25519 253 бита
Имя сервера TLS: XXX.XXX.com

Путь к документу: /v1/module
Длина документа: 370 байт

Уровень параллелизма: 100
Время, затраченное на тесты: 12,595 секунды
Полные запросы: 1000
Неудачные запросы: 0
Запросы на поддержание активности: 0
Всего передано: 788000 байт
Передано HTML: 370000 байт
Запросов в секунду: 79,39 [#/сек] (среднее)
Время на запрос: 1259,549 [мс] (среднее)
Время на запрос: 12,595 [мс] (в среднем по всем одновременным запросам)
Скорость передачи: получено 61,10 [Кбайт/сек]

Время соединения (мс)
              мин. среднее[+/-sd] медиана макс.
Связаться: 91 1152 619,3 1108 4744
Обработка: 22 46 39,0 32 850
Ожидание: 21 43 27,4 31 491
Всего: 121 1198 623,4 1146 4784

Процент запросов, обслуженных за определенное время (мс)
  50% 1146
  66% 1298
  75% 1668
  80% 1796
  90% 1992 г.
  95% 2053
  98% 2190
  99% 3017
 100% 4784 (самый длинный запрос)

Я использую Apache/2.4.52 (Debian) и PHP 8.0.14 (cli). Цель состоит в том, чтобы начать использовать mpm_event вместо mpm_prefork, чтобы включить много одновременных подключений для моего API. Я не могу начать делать это с таким временем загрузки.

Как я могу переключиться на php-fpm, не нарушая время загрузки? Мои настройки php-fpm следующие:

pm.max_children = 844
pm.start_servers = 16
pm.min_spare_servers = 8
pm.max_spare_servers = 16
pm.max_requests = 1000
флаг jp
PHP, работающий с `mod_php` и с `php-fpm`, использует разные конфигурации. Убедитесь, что настройки одинаковы в обоих случаях.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.