这几天遇到一个很奇怪的问题,搜索的前端机经常会有一些超时的请求,以为是业务哪块效率不行导致的。后来就写了一个php,只做 echo 1 操作,结果在大量curl时,还是会出先超时的情况,而且仔细分析后,出现的超时要么是比正常时间多3秒整,要么是比正常时间多9s整,只有这两种可能,没有其它的超时时间,这就更奇怪了,。查了一下资料,3s和9s的超时,是网络问题引起的。

Mysterious 3 and 9 second delays calling connect()

`这几天遇到一个很奇怪的问题,搜索的前端机经常会有一些超时的请求,以为是业务哪块效率不行导致的。后来就写了一个php,只做 echo 1 操作,结果在大量curl时,还是会出先超时的情况,而且仔细分析后,出现的超时要么是比正常时间多3秒整,要么是比正常时间多9s整,只有这两种可能,没有其它的超时时间,这就更奇怪了,。查了一下资料,3s和9s的超时,是网络问题引起的。

Mysterious 3 and 9 second delays calling connect()

`

20131126174519-backlog-3s-nginx

nginx php 3s 9s timeout delay

nginx php 3s 9s timeout delay

再底层的东西也咱现在也不了解啊。。还得慢慢学啊,可是问题还得解决啊。。

于是把问题抛给了op的同事,,最后解决了。。

解决办法:

修改 /usr/local/nginx/conf.d/default.conf 的 backlog=8192 后,超时3秒、9秒的问题得到验证解决。

修改了nginx的默认的backlog参数。

具体原因是啥,现在也不懂,记录下来,以后慢慢参悟吧。