问题:拔网线高可用耗时较长
问题现象 :在高可用测试中,拔掉网线,单节点失效后,反馈结果从秒级产生了 7 分钟的延 迟。
解决方法 :若 socket send buffer 中有数据,则 keepalive 机制失效,规避方法为修改 /proc/sys/net/ipv4/tcp_retries2 =3。
建议在安装的时候自动修改此参数。 若正常执行 20 秒的 sql 断网线后阻塞 3 分钟报错返回,keepalive 机制起作 用。
说明 :关于 keepalive 的参数默认值为 3 分钟(120+512 = 180 S)返回,如果客户对返回 时间有要求,可以减少默认值: • gcluster_connection_keep_idle = 120;//多长时间没响应开始探测网络,此参数最 小值为 60s; • gcluster_connection_keep_interval=5;//每次探测间隔时间,单位:S; • gcluster_connection_keep_count=12;//探测的次数。 例如可以修改如下,将在 70 秒(60+25)内返回: gcluster_connection_keep_idle =60; gcluster_connection_keep_interval=2; gcluster_connection_keep_count=5;