Linux의 유선 속도는 더 느리지만 Windows의 유선 속도는 최고 속도입니다. - 10Gbe

Linux의 유선 속도는 더 느리지만 Windows의 유선 속도는 최고 속도입니다. - 10Gbe

Dell 서버가 2대 있습니다. 하나는 R720이고 다른 하나는 R730입니다. 둘 다 Dell에서 지원하는 4포트 도터 카드를 가지고 있습니다. 두 카드 모두 RJ45만 지원하며 (2) 10Gbe + (2) 1Gbe 포트가 있습니다. 한 카드는 Intel X540이고 다른 카드는 Qualcomm 57800입니다. 두 카드 모두 최신 펌웨어와 최신 Dell 지원 드라이버가 있습니다. 10Gbe 포트는 직접 이더넷과 짧고 짧은 Cat 7 케이블을 사용합니다. 두 시스템 모두 완전히 업데이트되었습니다.

Linux 시스템에서 SMB 공유를 생성하고 지원되는 RHEL 8.5 구독 버전을 실행한 후 Windows 서버 간에 최대 10Gbe 속도(업로드 및 다운로드 모두에서 약 1.0-1.3GB/s 전송 속도)를 얻었습니다. RHEL 시스템(더 새롭고 빠르며 리소스 집약적인 R730)에서는 1Gbe를 초과하는 어떤 것도 얻을 수 없었습니다(대부분 67-68MB/s 정도였습니다). Linux 시스템에서는 Windows R720에서 업로드하거나 다운로드하는 데 차이가 없습니다.

이것이 가장 중요합니다. 나는 두 컴퓨터 사이의 도터 카드를 교체하고 이더넷 연결을 완전히 재구축했으며 드라이버를 업데이트하고 Linux 상자의 예비 카드를 조정하는 데 며칠을 보냈습니다. 내가 얻은 최고의 지속 속도는 약 72MB/s였습니다. 이상한 점은 MTU를 점보 프레임용 9000에서 표준용 1500으로 줄이면 최고 성능이 80-90MB/s까지 치솟을 수 있다는 것입니다. 여러 파일을 전송하면 지속 전송 속도가 140MB/s로 표시됩니다. MTU가 더 작습니다. 점보 프레임을 사용하면 단일 스레드처럼 동작하며 때때로 잠시 동안 "지속"됩니다. 이는 RSS가 작동하지 않는 것처럼 작동하며 확장을 위해 할당된 16개의 CPU 대신 1개의 CPU를 통해 단일 스레드로 작동합니다.

혼란스러워요. Red Hat, Fedora 또는 CentOS에서 10Gbe 카드를 작동시키는 데 문제가 있는 사람이 있습니까? 이건 정말 나를 미치게 만든다! 마찬가지로, 서로 다른 두 공급업체의 두 개의 개별 카드와 두 개의 서로 다른 드라이버를 사용하는 경우 정확히 동일하게 작동합니다. Red Hat 어딘가에 운영 체제 제한이 있는 것과 거의 같습니다. 돕다!

이 SAS를 SAS, NVME에서 NVME, SAS-HD에서 SAS-SSD 등을 실행했습니다. 연결이 동일한 전송 속도로 제한되는 것 같습니다...ARGGGhhhhhh!

eno1에 대한 설정:

Supported ports: [ TP ]
Supported link modes:   100baseT/Half 100baseT/Full
                        1000baseT/Full
                        10000baseT/Full
Supported pause frame use: Symmetric Receive-only
Supports auto-negotiation: Yes
Supported FEC modes: Not reported
Advertised link modes:  100baseT/Half 100baseT/Full
                        1000baseT/Full
                        10000baseT/Full
Advertised pause frame use: Symmetric Receive-only
Advertised auto-negotiation: Yes
Advertised FEC modes: Not reported
Link partner advertised link modes:  100baseT/Full
                                     1000baseT/Full
                                     10000baseT/Full
Link partner advertised pause frame use: Symmetric Receive-only
Link partner advertised auto-negotiation: Yes
Link partner advertised FEC modes: Not reported
Speed: 10000Mb/s
Duplex: Full
Auto-negotiation: on
Port: Twisted Pair
PHYAD: 17
Transceiver: internal
MDI-X: Unknown
Supports Wake-on: g
Wake-on: d
    Current message level: 0x00000000 (0)
Link detected: yes

driver: bnx2x (Previous Intel Card used IXGBE driver - IDENTICAL issues!)
version: 1.713.36-0 storm 7.13.15.0
firmware-version: FFV15.15.08 bc 7.14.16 phy 1.45

이 두 카드는 다음과 같습니다.

BRCM 10G/GbE 2+2P 57800-t rNDC || 인텔(R) 2P X540/2P I350 rNDC

서버용 Dell 4포트 RJ45 2개.

다시 한 번, 컴퓨터 간에 카드를 교체하고 Linux 이더넷 연결을 완전히 재구축했으며 두 컴퓨터 모두 정확히 동일하게 작동한다는 점을 명심하세요. Windows Server의 속도는 최대 라인 속도에 도달하지만 Linux의 속도는 매우 느립니다. 1Gbe(500Mbe에 가깝습니다)에 불과합니다. 500Mb 인터넷 연결이 있지만 1Gbe 포트에서 실행되고 있습니다.

답변1

첫 번째 문제는 Windows SMB 제한 사항(클라이언트 또는 서버 버전)과 관련이 있습니다. 리소스를 절약하기 위해 Microsoft는 SMB 제한 사항과 제한된 MTU를 추가했습니다. 다음은 Microsoft의 개정된 발표 정보입니다.

  • SMBv3 이상의 경우 SMB 다중 채널이 활성화되어 있고 제대로 작동하는지 확인하세요.
  • SMB(Windows) 클라이언트에서는 SMB에서 대규모 MTU를 활성화하고 대역폭 조절을 비활성화합니다. 이렇게 하려면 다음 명령을 실행합니다(Windows에서는 PowerShell 사용).

SmbClientConfiguration 설정 -EnableBandwidthThrotdling 0 -EnableLargeMtu 1

https://docs.microsoft.com/en-us/windows-server/storage/file-server/troubleshoot/slow-file-transfer

Linux RHEL 8에서는 모든 Win 공유를 CIFS로 마운트했지만 이를 SAMBA 공유로 설정하는 것이 가장 좋은 방법일 것입니다(CIFS가 SAMBA 변형임에도 불구하고). 나는 이 지침을 사용하는 이유는 간단하기 때문입니다.

https://linuxize.com/post/how-to-mount-cifs-windows-share-on-linux/

===========

결과:

NVME에서 NVME까지의 드라이브를 제외한 모든 드라이브는 최대 라인 속도입니다. NVME에서 설정한 최대 지속 속도는 500MB/s입니다. 일반적으로 최대 10Gbe 회선 속도의 경우 거의 2배가 되어야 하지만 한동안은 그 정도를 감당할 수 있습니다. SAS HD 디스크 trxfr은 175-200MB/s입니다(때로는 RAID 카드 캐시를 통해 최대 500MB/s까지 가능). SATA SSD에서 SAS SSD로의 실행 속도는 약 400-500MB/s입니다. NVME는 유일하게 남은 병목 현상입니다. 시간이 나면 이 문제를 수정하겠습니다. 하지만 지금은 500MB/s의 지속 속도에 만족합니다.

관련 정보