某入口,nginx大量报upstream timed out (110: Connection timed out) while reading response header from upstream,
N多的请求都失败了。
自然想到,是上游tomcat没把这些连接接起来处理掉。
(1)增大了proxy_connect_timeout,涛声依旧。
(2)怀疑是上游tomcat太少,不能把连接接起来。
加了几个服务器进去,并调大了tomcat允许的连接数,
折腾大半天,涛声依旧。
一脸懵逼~
(3)升级cpu,加大内存,依旧无法接起更多连接,2000多线程tomcat就被干了,1000倒是不死,
但是upstream timed out依然刷屏……
一脸懵逼~ 快崩溃……
(3)发现处理成功的处理时间有些很长,达到20秒,30秒。 发现长了,就把对应服务器干掉,如此反复
(4)不停的启动,被干,启动……
(5)怀疑tomcat调用上上游返回太慢,加了打印耗时秒数。
(6)发现秒数还行,但是打印忽快缓慢……
(7)另一台服务器也加了打印秒数
(8)发现2号服务器日志输出比1号快,明显快……
1号是不是坏了,1号是4核,2号才2核,咋回事?
一脸懵逼~~
(9)iftop看带宽,发现内网带宽,1号比2号大,达到了1G多。 2号才400M级别,不过2号内网带宽限制是500M。 而且前一天,发现内网ping不通,重启就好了。
所以想到,1号是不是因为内网带宽受限,很多数据包被丢失,所以导致连接超时。
(10)升级1号,内网带宽限制为1.5Gbps, 靠,好了!!!!!!!!!!!!!! 好了!!!!!!!!! 整整搞了3天~~
|