我们在debian 8系统上使用php5-fpm (5.6)运行nginx/1.6.2 。
在过去的几天里,由于更多用户访问我们的服务器,我们的负载比平时更高。大多数游客在下午 6 点至午夜之间的晚上时间来。
几天后,运行上述设置的两台不同服务器在几个小时内显示响应速度非常慢。在 Munin 中,我们看到,突然有数百个处于“写入”状态的 nginx 连接,而以前一次只有大约 20 个。
在尝试访问这些服务器时,除了远程主机上的连接超时之外,我们没有收到任何错误。我看到的所有日志都很正常。
该问题可以通过重新启动 php5-fpm 来解决。
我现在的问题是:为什么突然有数百个进程声称它们正在编写?是否有一些已知问题或我们错过的配置设置可能导致这种情况?
以下是我们看到的完整症状列表:
- 而不是 < 20 个非常快速的活动连接/秒,我们看到多达 100 到 900 个处于写入状态的连接(所有 nginx 连接都命中 php5-fpm,这些服务器不提供静态内容)php 脚本的脚本运行时间为 80 毫秒。
- 仅当 nginx 请求/s 的总量超过 300/s 时才会出现问题,然后它会从 ~350 下降到 ~250 req/s 但这 250 个显示多达 900 个“写入”连接
- 许多这些连接最终超时并且没有给出正确的结果
- 我们的日志中没有错误
- eth / 数据库流量以及 CPU 负载对应于 250req/s 的较低水平,总下降,因此没有“写入”发生 afaik。
对于设置:如上所述。我们使用 Zend 的内置操作码缓存,APCu 用于一些用户变量缓存,其中一个服务器运行一个 memcache 实例(在整个问题中运行良好),另一个运行 Redis 版本,它也运行良好,而出现问题。
任何人都可以阐明问题可能是什么?
谢谢!