php-fpm:更快接受连接的瓶颈是什么?

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 状态页面:此报告中的“队列”项目是什么?

我知道我应该增加队列长度,我会这样做。但我的问题是为什么我的监听队列是否已满?首先,防止其满载的瓶颈是什么?我假设如果有大量监听积压,那么一定有什么东西没有“跟上”?这是 CPU 瓶颈/负载问题,速度不够快吗accept()

答案1

您似乎没有足够的 PHP 工作进程来处理您接收的流量。

显而易见的解决方案是:

  1. 允许更多总进程。但您需要有 CPU 和 RAM 来处理此问题,而且您没有说明您有哪些可用资源或消耗了多少资源。
  2. 让您的应用程序运行得更快。更好的编程,适当使用页面缓存和操作码缓存等。

相关内容