当我向服务器发送数据时,其带宽有限

当我向服务器发送数据时,其带宽有限

我和我的 6 台服务器有光纤连接。服务器托管在不同的城市。我们的上传和下载速度都超过 100Mbps。速度测试表明带宽良好。但是,当我尝试通过 TCP(随机端口)或 SSH (scp) 向服务器发送一些文件(单个文件)时,此限制为 ~1MBps。

编辑:当我从服务器下载时,速度非常快(我的最大速度11MBps)

当我的朋友从不同的位置尝试此操作时,它们的速度也被限制为 ~1MBps。如果我们同时发送,我们的速率将小于 1 MBps(速率之和为 1MBps)。我尝试了 2 个不同 ISP 上的服务器,行为相同。

服务器是 Ubuntu 22.04 上的“Intel NUC”,ufw已禁用,ISP 表示其端没有 QoL。服务器尚未运行任何服务。iftop交通空荡荡。我忍不住认为这是一个软件问题。

如果这确实是一个问题,我该如何排除故障软件问题?

这是服务器速度测试结果之一: 服务器速度测试结果

这是我的速度测试结果: 我的速度测试结果

这是我正在做的测试scp -P $PORT $FILE $USER@$HOST:/dev/null SSH 传输示例

这是 ethtool 的结果:

Settings for enp1s0:
        Supported ports: [ TP    MII ]
        Supported link modes:   10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Full
        Supported pause frame use: Symmetric Receive-only
        Supports auto-negotiation: Yes
        Supported FEC modes: Not reported
        Advertised link modes:  10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Full
        Advertised pause frame use: Symmetric Receive-only
        Advertised auto-negotiation: Yes
        Advertised FEC modes: Not reported
        Link partner advertised link modes:  10baseT/Half 10baseT/Full
                                             100baseT/Half 100baseT/Full
                                             1000baseT/Half 1000baseT/Full
        Link partner advertised pause frame use: No
        Link partner advertised auto-negotiation: Yes
        Link partner advertised FEC modes: Not reported
        Speed: 1000Mb/s
        Duplex: Full
        Auto-negotiation: on
        master-slave cfg: preferred slave
        master-slave status: slave
        Port: Twisted Pair
        PHYAD: 0
        Transceiver: external
        MDI-X: Unknown
netlink error: Operation not permitted
        Link detected: yes

编辑1:这是我到服务器的iperf3的结果:

[ ID] Interval           Transfer     Bitrate
[  5]   0.00-1.00   sec  2.05 MBytes  17.2 Mbits/sec                  
[  5]   1.00-2.00   sec  1.89 MBytes  15.8 Mbits/sec                  
[  5]   2.00-3.00   sec  2.01 MBytes  16.9 Mbits/sec                  
[  5]   3.00-4.00   sec  2.32 MBytes  19.4 Mbits/sec                  
[  5]   4.00-5.00   sec  2.75 MBytes  23.0 Mbits/sec                  
[  5]   5.00-6.00   sec  1.19 MBytes  10.0 Mbits/sec                  
[  5]   6.00-7.00   sec  2.49 MBytes  20.9 Mbits/sec                  
[  5]   7.00-8.00   sec  2.55 MBytes  21.4 Mbits/sec                  
[  5]   8.00-9.00   sec  1.64 MBytes  13.8 Mbits/sec                  
[  5]   9.00-10.00  sec  2.31 MBytes  19.4 Mbits/sec  

编辑2:该视频显示出奇怪的行为。当我们打开tcptrack软件时,它会“释放”带宽。当我们关闭软件时,带宽又被“束缚”。 https://youtube.com/shorts/zKkKa2ZPJ94?feature=share

编辑3:当我将网络设置为混杂模式时,问题就解决了。但我相信这是一个坏主意...... sudo ifconfig enp1s0 promisc

答案1

你的ethtool转储有一个让我担心的问题:

Auto-negotiation: on

这允许您的 NIC 与“另一端”协商通过线路传输位的速度。此协商发生在 OSI 7 层模型的最低电路层。它没有被记录。

它适用于速度随时间变化的连接。那不是你。

但是,有时节点会陷入“自动协商风暴”,其中两个节点不断交换低级别速度协商,而不是数据包。

您可以使用ethtool关闭自动协商:

sudo ethtool --change enp1s0 autoneg off 

man ethtool

答案2

我通过将以太网驱动程序从 r8169 降级到 r8168 解决了这个问题。 (瑞昱)

sudo apt install r8168-dkms
sudo modprobe r8168

相关内容