首页 > 代码库 > 关于系统TCP连接的过多问题。

关于系统TCP连接的过多问题。

     在日常的运维工程中经常遇到一些服务器的TCP连接过高,头疼不已。针对一些日常出现的问题,做一些总结,希望能抛砖引玉。

    现在网站大部分都使用nginx和tomcat,利用nginx高效的使用系统资源以及tomcat的处理事物高效来特点完成日常的网站运作。尝尝采用前端nginx进行转发后端tomcat进行处理的方式。

   很多时候会发现一些服务器本身的tcp过高,有些甚至过万。客户端那边反应请求过慢或者超时,服务器端显示调用接口超时等一些问题。

  其中有一种情况如下:

    $ netstat  -antp  | head

Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name

tcp        0      0 127.0.0.1:portA            127.0.0.1:portB           ESTABLISHED -
类似上面的连接很多,其中
Foreign Address 的端口是本地tomcat的java进行的端口 连接Local Address本地随机端口也就是说是前端nginx和后端tomcat端口之间连接过多导致。

那如何解决这个问题呢?

1、是否是后端java程序处理前端请求处理时间过慢导致长连接以及前端请求过多导致?

2、 是否可以把nginx的连接超时调小?如果调小之前遇到过499错误代码返回,如何解决?

3、连接过多是否可以理解请求过多导致,那添加机器进行扩容是否可以解决该问题?

4、最后也就是优化处理java程序,来解决 这个问题?

以上是我的个人想法,难免偏见,求指点。

关于系统TCP连接的过多问题。