我们在debian 8系统上使用php5-fpm(5.6)运行nginx / 1.6.2。
在过去的几天里,由于更多的用户访问我们的服务器,我们的负载比平常高。大多数游客在晚上6点至午夜之间来到这里。
几天以来,运行上述设置的两台不同服务器在几个小时内显示出非常慢的响应速度。在Munin,我们看到,突然有数百个nginx连接处于“写入”状态,以前一次只有大约20个。
尝试访问这些服务器时,除了远程主机上的超时连接之外,我们不会收到任何错误。我看到的所有日志都很正常。
重启php5-fpm可以解决这个问题。
我现在的问题是:为什么突然有数百个流程声称他们正在撰写?是否有一些已知问题或者我们错过的配置设置可能会导致此问题?
以下是我们看到的完整症状列表:
对于设置:如上所述。我们使用Zend的内置操作码缓存,APCu用于某些用户变量缓存,其中一个服务器运行一个memcache实例(在整个问题中工作正常),另一个运行Redis版本,该版本也运行正常出现问题。
任何人都可以解释问题可能是什么?
谢谢!
我们发现了问题:使用PHP 5.6,APCu似乎不稳定。
细节:
我们使用xhprof在服务器运行缓慢时查询请求(请参阅问题)并注意到,APCu每次读/写操作花了> 100ms。清除APCu变量没有帮助。代码的所有其他部分都具有正常速度。
我们完全禁止使用APCu,因此系统一直稳定。
所以看来,这个APCu版本在加载PHP 5.6时不稳定。至少对我们而言。
我们遇到了同样的问题,原因是Redis中的数据超过了“maxmemory”,因此redis无法再写入更多数据。我可以使用redis-cli登录但无法设置值,如果您遇到此问题,可以使用redis-cli登录redis并尝试设置某些内容,如果redis内存已满,则会出现错误。