偶小梦
发布于

服务器UDP丢包导致性能变差

➢ 问题

  1. 全部 SQL 运行异常缓慢
  2. 通过设置 interconnect 的报文发送重试超时为 120 S(
    SET gp_interconnect_log_stats=TRUE;
    SET gp_interconnect_transmit_timeout=120;),然后运行有问题的查询,有如下超时报错:
    NOTICE: Interconnect encountered a network error, please check you network (seg19, 10.2.64.20:40000 pid=226133)
    DETAIL:
    Failed to send packet (seq 1) to 10.2.64.17:28332 (pid 788003 cid 3) after 124 retries in 120 seconds
  3. 重复执行该查询,发现报错稳定,且总是向 10.2.64.17 发送报文重试失败。
评论(1)
  • 偶小梦
    偶小梦 回复

    ➢ 分析

    1. 全部 SQL 运行异常缓慢说明出问题的点不是某个表或者数据库中的某个实体对象出现故障。
    2. 全部 SQL 运行异常的时间长度远超实际运行时长,说明不属于数据分布偏移或者资源欠缺等导致的性能下降,这类行为往往导致的性能下降一般在几倍的量级。
    3. 通过设置超时到 120S 得到的报错证明,确实出现了网络 UDP 持续丢包现象导致数据传输无法顺利完成,数据库执行器在通讯中不断尝试重发结果失败。
    4. 通过设置超时到 120S 得到的报错证明,10.2.64.17 中稳定出现故障,应成为检查合排查的首要目标。
      ➢ 解答
    5. 可尝试修改 mtu(最大传输单元) 减小 mtu 值避免组包拆包 但这个方案会影响到性能 也不一定能解决丢包的问题。
    6. 如果方便协调,可尝试更换交换机口,将 10.2.64.17 那台机器换个口试试。
    7. 如果方便,可尝试重启服务器或者重启网卡。
test