TrueNAS Core에서 SCALE 24.10으로 옮긴 뒤 X520-DA2 한 포트가 iperf3에서 1Gbit/s밖에 안 나옴
스토리지 박스를 Core 13.0-U6.7에서 SCALE 24.04로, 그다음 24.10으로 올렸는데, 그 뒤로 포트 하나가 느려터졌다. 같은 카드의 나머지 포트는 멀쩡한데도 그렇다. 25G 카드도 똑같이 이러는 걸 보면 내 눈을 의심하게 된다.
- Intel X520-DA2, Intel 멀티모드 SFP+ 광모듈, 스위치까지 10G
- Intel XXV710-DA2, Intel SFP28 광모듈, 같은 스위치까지 25G
- NAS에는 TrueNAS SCALE 24.10(원래 Core 13.0-U6.7, 그다음 24.04)
- 기준은 NAS와 클라이언트 사이의 iperf3
느린 포트의 링크 상태는 정확히 정상으로 보인다:
$ ethtool enp1s0f0 | grep -E 'Speed|Duplex|Link detected'
Speed: 10000Mb/s
Duplex: Full
Link detected: yes
$ iperf3 -c 192.168.3.2
# parks itself around 1 Gbit/s for the whole run
# the second port of the same card does line rate against its own client
이미 해본 것:
- 카드의 두 포트 사이에서 광모듈을 서로 바꿔봄, 느린 포트는 계속 느리고 빠른 포트는 계속 빠름
- 양쪽 sysctl net.ipv4.tcp_congestion_control 비교, 값 동일
- 양쪽 다 다시 꽂고 페룰 청소함
링크 계층에서 측정되는 건 전부 10G, 25G 풀 듀플렉스라고 나오는데, 페이로드는 여전히 기가비트 수준에 묶여 있다. 모듈이 열화되고 있는 건지, NIC가 맛이 가는 중인지, 아니면 내가 엉뚱한 계층을 보고 있는 건지?
Comments 3
광모듈은 이미 직접 배제했잖아요: 포트끼리 서로 바꿔봤는데 느림 증상이 포트를 따라갔어요. 그러니 모듈은 그냥 두고, 링크 계층 사실과 처리량 수치를 분리해서 보세요. 둘은 다른 질문에 답하는 거니까요.
같은 카드에서 빠른 포트와 느린 포트 사이에 보통 다른 게 두 가지 있어요. 같이 놓고 보세요:
한쪽은 MTU 1500이고 다른 쪽은 9014인데 서로 다른 VLAN에 있다면, 지금 느리다고 재는 테스트는 NIC를 나갔다 들어오는 게 아니라 호스트의 라우팅 경로를 타고 있는 거예요. 느린 포트와 같은 VLAN, 같은 서브넷에 클라이언트를 하나 두고 거기로 iperf3 -c를 돌려보세요. 경로에 라우터도 없고 MTU 불일치도 없으니 따질 게 없어요.
단일 VLAN 테스트에서 라인레이트가 나온다면 포트와 트랜시버는 멀쩡한 거고, 실제로 잰 건 호스트의 VLAN 간 라우팅 성능이에요. Core에서 SCALE로 옮긴 사례 상당수가 여기서 걸려요: VLAN 사이 포워딩이 Core 시절보다 눈에 띄게 나빠졌어요.
이건 진단이지 딱히 해결책은 아니에요. 무거운 트래픽을 VLAN 하나 안에 묶어두거나, 라우팅을 NAS 대신 스위치에 맡기면 성능 대부분을 되찾아요. 적어도 멀쩡한 SFP+ 모듈 두 개를 반품하는 일은 막아줘요.
광모듈부터 뽑기 전에: 그 두 포트에 대해 스위치는 뭐라고 하나요? 네고시에이트된 속도, 듀플렉스, 양쪽 에러 카운터부터 보세요. 그리고 느린 테스트에서 iperf3 서버는 어느 쪽 끝에서 도나요 - 방향을 뒤집어서 반대쪽에서 밀어도 그 한계치가 그대로인가요?
그다음 느린 포트와 빠른 포트의 MTU와 VLAN을 나란히 올려보세요. 10G로 네고시에이트되는데 페이로드는 기가비트밖에 안 움직이는 포트는 거의 항상 포워딩이나 경로 문제지, 광학 문제가 아니에요. 두 포트가 같은 VLAN에 있지 않다면 iperf3는 링크가 아니라 라우터 성적을 매기고 있는 거예요.
하드웨어는 다른데 모양은 똑같아요. X520-DA 카드 두 장을 SFP+ DAC로 백투백 연결했는데, 한쪽은 Hyper-V Server Core 2012 R2, 반대쪽은 NAS4Free 9.1 스토리지 박스였어요. 직결일 때는 읽기/쓰기 다 8-9 Gbit/s가 나왔어요. 그 포트를 Hyper-V 가상 스위치에 바인딩하는 순간 500 Mbit/s 정도로 떨어졌고, Windows Server 2012 R2와 Windows 8.1로 카드를 다시 테스트해도 전혀 달라지지 않았어요.
결국 원인은 못 밝혔어요. 유일하게 받은 답변은 양쪽 끝에 어떤 디스크, 어떤 RAID 레벨이 있는지 물었는데, 타당한 질문이에요. 스토리지가 10G 경로보다 훨씬 먼저 병목이 될 수 있으니까요. 그때 몸에 익힌 습관: 추가 레이어를 붙인 상태와 뗀 상태에서 같은 링크를 재보고, 가능하면 RAM 디스크 상대로도 재봐요. 그때도 케이블과 카드는 문제가 아니었어요.