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

php-fpm: что является узким местом для более быстрого приема соединений?

Какое узкое место на странице состояния php5-fpm не позволяет моему серверу accept()Достаточно быстро новые розетки?

pool:                 www
process manager:      static
start time:           20/Jan/2015:16:37:18 +0000
start since:          176705
accepted conn:        903749
listen queue:         0
max listen queue:     129
listen queue len:     128
idle processes:       59
active processes:     69
total processes:      128
max active processes: 128
max children reached: 0

Как видите, я дошел до очереди на прослушивание, и это происходит довольно часто. Я понимаю базовую логику очереди прослушивания, и она подробно изложена здесь: Страница статуса php-fpm: какие элементы "очереди" в этом отчете?

Я понимаю, что нужно увеличить длину очереди, и сделаю это. Однако мой вопрос Зачем заполняется ли моя очередь на прослушивание, и что является узким местом, препятствующим ее заполнению в первую очередь? Я предполагаю, что если есть большое отставание по прослушиванию, то должно быть что-то, что «не успевает»? Это проблема узкого места / загрузки ЦП, которую он не может accept() достаточно быстро?

Похоже, что у вас недостаточно рабочих процессов PHP для получаемого трафика.

Очевидные решения:

  1. Разрешите более полные процессы. Но для этого вам нужны ЦП и ОЗУ, и вы ничего не сказали о том, какие ресурсы у вас есть или сколько было потреблено.
  2. Сделайте ваше приложение более быстрым. Лучшее программирование, правильное использование кэширования страниц и опкодов и т. Д.