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

Страница статуса php-fpm: что такое «очередь» в этом отчете?

Итак, у меня есть рабочая установка nginx + php-fpm. Страница отчета о статусе php-fpm активирована, и я получаю что-то вроде этого (не заботьтесь о настройках, это тестовый сервер при стресс-тестах):

pool:                 foobar
process manager:      dynamic
start time:           31/Jan/2012:08:18:45 +0000
start since:          23592
accepted conn:        3354
listen queue:         0
max listen queue:     0
listen queue len:     0
idle processes:       0
active processes:     10
total processes:      10
max active processes: 10
max children reached: 25

Нигде не могу найти указаний на то, что listen queue:,max listen queue: и listen queue len индикаторы. Кто-нибудь мог объяснить?

Соединения PHP-FPM осуществляются через сокет (TCP или файловый). Таким образом, PHP-FPM должен:Слушать'на этом сокете, а затем' принять 'соединения.

Поскольку существует конечная скорость, с которой могут приниматься соединения, при высокой нагрузке возможна задержка между моментом инициации соединения и моментом его принятия. Соединения в этом состоянии ставятся в очередь.

прослушать очередь len: Это определяет максимальное количество подключений, которые будут поставлены в очередь. Как только этот предел будет достигнут, последующие соединения будут либо отклонены, либо проигнорированы. По мере принятия соединений длина очереди будет уменьшаться.

  • Это значение устанавливается параметром конфигурации php-fpm для каждого пула listen.backlog (по умолчанию: -1 = без ограничений).
  • Поскольку используются сокеты, это значение также ограничено системным значением net.core.somaxconn (по умолчанию: 128 в большинстве систем Linux).

Учитывая вышесказанное, логично предположить, что:

  • очередь прослушивания: это количество подключений, которые были инициированы еще не принятыми
  • максимальная очередь прослушивания: - максимальное значение, которого достигла очередь прослушивания во время работы php-fpm.