Nginx + php-fpm – recv()错误

我在nginx日志中得到了下面的错误

客户端:[cut],server:[cut],request:“GET / venues HTTP / 1.1”时,recv()失败(104:由对等方重置连接)[error] 17734#0:* 6643 ,上游:“fastcgi://127.0.0.1:9000”,主机:“[cut]”

我有一个8 GB的RAM,四核芯片专用的盒子。 好的服务器。 Nginx,php-fpm&mysql所有最新版本在ubuntu 10.04下运行

当我用压力testing服务器时,我只能得到这个。 如果我把并发连接的数量增加到100,我可以得到20%的所有请求失败。

此外,我没有得到这个没有MySQL查询的网页上。 只有less量的查询失败。 位,我不确定那是否要做任何事情。

我有一种感觉,这是用php做的事情。 但我无法弄清楚。

任何build议甚至从哪里开始寻找?

更新:和PHP错误日志是沉默的。 没有任何logging发生错误

很可能你用完了php-fpm的工作。 日志是沉默的,因为代码本身没有错,工作人员正在忙于处理你的请求。 如果你没有在没有MySQL查询的页面上得到这个,瓶颈就是MySQL数据库。 您应该确定长时间运行的查询(使用mytop或者慢日志function,或者在SQL处理过程中使用一些定制的PHP日志logging)并对其进行优化。 当然,在我们这个世界的高负荷下,“长时间询问”实际上是相当短的。 即使是200ms的查询也足以让你的服务器瘫痪。

这可能会得到解决。 我报告了几乎没有任何负载打开和重用持久tcp套接字类似的问题。 现在有一个补丁降落在这个混帐:

https://groups.google.com/forum/#!topic/highload-php-en/qGu3Eaifj9s