繁体   English   中英

Netstat显示许多mysql连接的CLOSE_WAIT状态

[英]Netstat shows numerous CLOSE_WAIT states for mysql connections

netstat -an的输出显示了许多处于CLOSE_WAIT状态的mysql连接,当我使用“ SHOW PROCESSLIST”检查mysql中的进程列表时,netstat中显示的连接不会出现。 这可能是其原因。 我将tomcat与mysql-connector一起使用,并同时使用一个连接池。

是因为应用程序没有关闭mysql连接,还是有其他原因导致此行为...有时CLOSE_WAIT超过200。

在应用程序级别,我确保关闭所有使用jdbc创建的连接(确保在finally块中发出close()命令)。

任何帮助,将不胜感激。

如果netstat在应用程序计算机上完成,则可能意味着MySQL服务器配置错误。

请在MySQL服务器中检查以下全局变量,

  interactive_timeout
  wait_timeout

如果其中任何一个太短,将导致此问题。 当使用池时,通常将两者都设置为1小时。

服务器关闭连接但连接池没有机会关闭连接时,TCP处于CLOSE_WAIT状态。

IIS也有同样的问题。 在Windows机器上,我们有:

$ netstat -on | sed '1,4d' | sed 's/:/ /g' | awk '{print $6}' | sort | uniq -c

287 CLOSE_WAIT

121 ESTABLISHED

2 SYN_SENT

1 TIME_WAIT

在MySQL上:

mysql显示全局变量,如“ interactive_timeout”;

Interactive_timeout 28800

mysql>显示全局变量,如“ wait_timeout”;

wait_timeout 1440`

我们将其更改为wait_timeout = 3660,将看到它会有所帮助。

PS:wait_timeout = 1440已完成,因为db之前最多有400个睡眠连接...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM