V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
lmfx89
V2EX  ›  问与答

[请教] MySQL server has gone away 与 TIME_WAIT 的关系

  •  
  •   lmfx89 · 2017-06-17 17:53:47 +08:00 · 1442 次点击
    这是一个创建于 2719 天前的主题,其中的信息可能已经有所发展或是发生改变。

    在阿里云配置了 MySql(RDS) 的读写分离地址后,在 PHP 中使用该地址进行更新操作时提示如下报错:

    1.提示错误

    MySQL server has gone away (SQL:xxx)

    此时切换回 主数据的 连接地址就恢复正常不再报错。

    提交工单获得的答复是 TIME_WAIT 过多。

    2.目前了解的情况

    一. TIME_WAIT 连接数如下:

    [root@machine ~]# netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
    CLOSE_WAIT 3
    ESTABLISHED 568
    TIME_WAIT 1268
    

    二. 多数 TIME_WAIT 如下,后者( 192.168.0.10:6379 )是 Redis Docker 容器的地址、端口。

    tcp        0      0 192.168.0.1:35180       192.168.0.10:6379       TIME_WAIT  
    tcp        0      0 192.168.0.1:34520       192.168.0.10:6379       TIME_WAIT  
    tcp        0      0 192.168.0.1:34798       192.168.0.10:6379       TIME_WAIT  
    tcp        0      0 192.168.0.1:49738       192.168.0.8:9000        TIME_WAIT  
    tcp        0      0 192.168.0.1:36198       192.168.0.10:6379       TIME_WAIT  
    tcp        0      0 192.168.0.1:34762       192.168.0.10:6379       TIME_WAIT  
    

    三. 本机的 PHP、Nginx、Redis 运行在不同的容器中。

    google 到减少 TIME_WAIT 的方法是:

    修改 /proc/sys/net/ipv4/tcp_tw_recycle 等参数

    但是又有相关文献说明修改该参数会导致 NAT 网络下的客户端连不上..遂放弃修改

    3.目前想请教大家的地方

    1.TIME_WAIT 过多会导致上述问题吗?如果是,那么为什么通过主数据的地址连接没问题,通过读写分离地址去连接就有问题呢?(实际上在另一台服务器上连接两个地址都没有问题...)

    2.修改 tcp_tw_reuse 参数是否可以减少服务器 TIME_WAIT 的数量呢,资料上讲该参数主要用于客户端,但这里的客户端指连接 Redis 的机器( 192.168.0.1 本机)还是指用户呢。

    一些自造、怕大家误会的名词

    主数据库:最近在原先数据库上增加了只读数据库用于分担压力。原先的可读写数据我叫它主数据库

    主数据库的地址读写分离地址:通过前者连接会直接对主数据库进行读写,通过后者时在进行读操作时会优先从新增的读数据库读取。

    先谢谢大家的指教。

    2 条回复    2017-06-17 19:09:13 +08:00
    billlee
        1
    billlee  
       2017-06-17 18:54:33 +08:00
    完全没看明白你到底是哪台服务器有 TIME_WAIT
    lmfx89
        2
    lmfx89  
    OP
       2017-06-17 19:09:13 +08:00
    @billlee #1 实在抱歉,我先去复习一下提问的艺术.. 先不打扰大家了。

    感谢回复。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2642 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 15:48 · PVG 23:48 · LAX 07:48 · JFK 10:48
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.