当我使用 netstat 命令时,它显示..
tcp 0 0 本地主机:18056 本地主机:mysql TIME_WAIT
tcp 0 0 本地主机:16683 本地主机:mysql TIME_WAIT
tcp 0 0 本地主机:16701 本地主机:mysql TIME_WAIT
tcp 0 0 本地主机:16888 本地主机:mysql TIME_WAIT
本地主机WAIT2TIME_WAIT 本地主机WAIT2TIME
tcp 0 0 本地主机:17725 本地主机:mysql TIME_WAIT
tcp 0 0 本地主机:17682 本地主机:mysql TIME_WAIT
tcp 0 0 本地主机:17414 本地主机:mysql TIME_WAIT
tcp 0 0 本地主机:17606 本地主机:mysql TIME_WAIT
tcp 0 0 本地主机:17737 本地主机:mysql TIME_WAIT
tcp 0 0 本地主机:16632 本地主机:mysql TIME_WAIT
tcp 0 0 本地主机:16825 本地主机:mysql TIME_WAIT 本地主机WAIT 时域主机WAIT 0 0 0 本地主机:mysql TIME_WAIT
本地主机时
tcp 0 0 本地主机:17715 本地主机:mysql TIME_WAIT
tcp 0 0 本地主机:17304 本地主机:mysql TIME_WAIT
tcp 0 0 本地主机:17217 本地主机:mysql TIME_WAIT
tcp 0 0 本地主机:18098 本地
主机:mysql TIME_WAIT
tcp 0 0 本地主机:17624 本地主机:mysql TIME_WAIT tcp 0 0 本地主机:17734 本地主机:mysql TIME_WAIT
Time_wait 连接在 2000 左右。
为了避免这种情况,我将 net.ipv4.tcp_fin_timeout=30 添加到 /etc/sysctl.conf
但是我仍然有一些问题,如何避免它?
Lad*_*ada 21
TIME_WAIT 存在是有原因的,原因是 TCP 数据包可能会延迟并无序到达。当他们应该成功时,弄乱它会导致额外的断开连接。这里对所有这些都有很好的解释。
您的问题是您没有在应用程序中重用 MySQL 连接,而是在每次要运行 SQL 查询时创建一个新连接。这不仅涉及建立 TCP 连接,还涉及通过它传递身份验证凭据。这发生在每个查询(或至少每个前端 Web 请求)中,而且浪费且耗时。
如果您不知道如何在您使用的任何语言中启用持久性 MySQL 连接池,StackOverflow 将是一个询问的好地方。