서버에 데이터를 보낼 때 대역폭이 제한되어 있습니다.

서버에 데이터를 보낼 때 대역폭이 제한되어 있습니다.

내 서버 중 6개에 광섬유 연결이 있습니다. 서버는 여러 도시에서 호스팅됩니다. 업로드 및 다운로드 속도는 100Mbps가 넘습니다. 속도 테스트 결과 대역폭이 좋은 것으로 나타났습니다. 그러나 TCP(임의 포트) 또는 SSH(scp)를 통해 일부 파일(단일 파일)을 서버로 보내려고 하면 이 제한은 ~1MBps입니다.

편집하다: 서버에서 다운로드할 때 속도가 매우 빠릅니다. (최대 속도는 11MBps입니다.)

내 친구들이 다른 위치에서 이것을 시도했을 때에도 ~1MBps로 제한되었습니다. 동시에 보내는 경우 속도는 1MBps 미만입니다(속도 합계는 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

관련 정보