新安装 Linux,udp 正常, TCP 大流量异常,

ryzen 1700 + 华硕 b350 plus,装上 ubuntu 16.04.4。
安装完成后发现传输大文件的时候会出现异常。

情景:

scp 一个大文件,起初能达到 10M+ 传输速度,然后会慢慢下降。
ping linux, 起初正常,传输大文件时,会出现丢包高延迟包

64 bytes from 192.168.0.200: icmp_seq=664 ttl=64 time=0.278 ms
64 bytes from 192.168.0.200: icmp_seq=665 ttl=64 time=0.275 ms
64 bytes from 192.168.0.200: icmp_seq=676 ttl=64 time=7772 ms
64 bytes from 192.168.0.200: icmp_seq=677 ttl=64 time=6773 ms
64 bytes from 192.168.0.200: icmp_seq=678 ttl=64 time=5773 ms
64 bytes from 192.168.0.200: icmp_seq=679 ttl=64 time=4773 ms
64 bytes from 192.168.0.200: icmp_seq=680 ttl=64 time=3773 ms
64 bytes from 192.168.0.200: icmp_seq=681 ttl=64 time=2773 ms
64 bytes from 192.168.0.200: icmp_seq=682 ttl=64 time=1773 ms
64 bytes from 192.168.0.200: icmp_seq=683 ttl=64 time=773 ms
64 bytes from 192.168.0.200: icmp_seq=684 ttl=64 time=0.217 ms

初步诊断

  1. 检查网口协议正常千兆

enp30s0: negotiated 1000baseT-FD flow-control, link ok
更换 网线 和 测试其他 Linux,基本排除外部网络故障

  1. 使用 iperf 进一步测试

    1. 内部机器测试
      127.0.0.1 和 内网ip 都没有问题
    2. 两台机器间测试

      udp 协议测试正常 iperf -u -s

      [  3] local 192.168.0.200 port 5001 connected with 192.168.0.174 port 57095
      [ ID] Interval       Transfer     Bandwidth        Jitter   Lost/Total Datagrams
      [  3]  0.0-20.0 sec   228 MBytes  95.7 Mbits/sec   0.475 ms 2147158096/2147320872 (1e+02%)
      

      tcp 协议就出现问题 iperf -s,网络迅速下降,同时 ping 丢包,高延迟

      [  5] local 192.168.0.200 port 5001 connected with 192.168.0.174 port 53736
      [  5]  0.0-21.0 sec  43.1 MBytes  17.2 Mbits/sec
      [  4] local 192.168.0.200 port 5001 connected with 192.168.0.174 port 53996
      [  4]  0.0-50.0 sec   177 MBytes  29.6 Mbits/sec
  2. 使用 ubuntu desktop 16.04.2 cd linux 测试这个情景,没有再现这个问题。

请教一下怎么排查这个问题?

阅读 3.6k
1 个回答

之前看到过一个 tcp 拥塞算法 bbr,需要通过升级内核实现,我就猜可能是内核导致的问题,于是我就使用网上的一键 bbr 脚本,内核 4.4 升级了到了 4.15,然后测试 udp,tcp 都正常了。原来内核上的哪个问题还是不清楚。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题