什么可以把linux进程pipe理连接池到坏的状态,所以它不断重启呢?

我有一个与MySQL连接池的应用程序。 在某种程度上,在生产中,每隔1-3秒钟closures一些sockets。 结果我的应用程序重新启动这个连接。

这是30个连接/应用程序服务器与MySQL的单个实例交谈的相当大的池。 总的来说,数据库端可能有1000个连接。

当我重新启动应用程序过程时,问题就消失了。 我寻找连接到套接字,文件描述符,内核的一些原因。应用程序每秒打开和closures〜10-30连接,以便有大约4-5k的传入连接。

如何避免它?

lsof -nPi tcp 

报告大约5k连接(和正确的传出到mysql的数量)。

 /proc/sys/net/ipv4/ip_local_port_range 

显示10k到60k的端口可用

ulimit -n设置为高数(100k)

Vmstat显示没有交换。 我在50%的CPU和25%的内存。

接下来我可以检查什么? 如何解决它?