菜单

[ Experience ] 解决路由因经过故障链路而带来的丢包问题

2020年3月1日 - Experience

起始:客户报障,从 Debian source 下载安装 Golang 时候速度极慢,且与 1.1.1.1 通信有 10% 丢包,客户报障丢包发生在 DECIX 接口上,希望我们进行排查。

Get:http://deb.debian.org/debian buster/main amd64 golang-1.11-go amd64 1.11.6-1+deb10u3 [41.9 MB] 
255 kB/s 1min 24s

结论:DECIX 丢包引起回程流量大量丢包,进而引起大量数据重传,TCP 窗口无法增大,故引起性能异常。

排查过程:

首先检测 DECIX 丢包情况,可复现客户所报故障,观察后台监控,确实有 10-20% 固定丢包。

查看客户访问的目标地址为 fastly CDN,于是查看路由表,并未发现有关于 fastly CDN 的路由从 IXP 被接收到,于是开始做 Performance Test 以排除链路问题。

[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-10.00  sec  1.07 GBytes   919 Mbits/sec                   sender
[  4]   0.00-10.00  sec  1.05 GBytes   906 Mbits/sec                  receiver

Transit circuit 并未见到有问题,性能过关,那会是什么情况呢?

这时候看到了一张大量 TCP RETRY 的 iperf3 测试图,突然想到 IXP Member 有可能只接受路由而不发送路由(节省出方向的流量费用),会不会回程流量也走了 DECIX?直接在 DECIX Member List 上查询,果然有 Fastly CDN 的存在。最后决定对 DECIX 禁播路由,避免流量从 DECIX 进入影响用户体验。

Total download size: 98 M
Installed size: 320 M
Downloading packages:
(1/4): golang-1.13.6-1.el7.x86_64.rpm                                                                                                                             | 3.2 MB  00:00:00     
(2/4): golang-bin-1.13.6-1.el7.x86_64.rpm                                                                                                                         |  86 MB  00:00:01     
(3/4): golang-src-1.13.6-1.el7.noarch.rpm                                                                                                                         | 7.1 MB  00:00:00     
(4/4): mercurial-2.6.2-10.el7.x86_64.rpm                                                                                                                          | 2.6 MB  00:00:00     
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                                                     73 MB/s |  98 MB  00:00:01     

路由禁播后,从 Debian source 下载安装 golang 的速度问题解决了,向客户反馈原因,并向 DECIX 发送邮件报修。

发表评论

电子邮件地址不会被公开。 必填项已用*标注