IL-0128 ByteDance · 2024-02-23 (게시일)ai-infranetworking
ByteDance 는 1만 개가 넘는 GPU 로 대규모 언어 모델을 학습하는 MegaScale 시스템을 논문으로 공개하면서, 운영 중에 진단하고 고친 문제 가운데 하나로 잦은 네트워크 인터페이스 플래핑을 소개했다. 날짜가 있는 장애 한 건이 아니라 되풀이해서 겪은 문제다.
플래핑이 일어나면 인터페이스가 몇 초 동안 내려가 그 사이의 패킷이 모두 버려졌다. NCCL 타임아웃을 기본값으로 두면 링크가 돌아오기 전에 타임아웃이 나서 학습이 멈추거나 느려졌다. 근본 원인은 네트워크 카드, AOC 케이블, 스위치 사이의 링크 품질 불량이었다.
ByteDance 는 NCCL 의 재전송 타이머와 재시도 횟수를 조정하고, NIC 의 adap_retrans 기능을 켜 짧은 플래핑에서 전송이 빨리 회복되도록 했다. 타임아웃 기준은 명시적으로 더 크게 잡았다. 네트워크 카드 신호 세기, AOC 케이블 품질, 스위치 쪽 신호 세기를 하드웨어 수준에서 관리해 플래핑 빈도를 만족할 만한 수준까지 줄였다.
학습이 멈추거나 학습 속도가 떨어지는 일이 가끔 일어났다. 원인은 네트워크 인터페이스가 자주 끊겼다 다시 붙는 플래핑이었다.
플래핑이 일어나면 네트워크 인터페이스가 먼저 내려갔다가 다시 올라왔고, 그 사이는 보통 몇 초였다. 인터페이스가 내려가 있는 동안 전송 중이던 패킷은 모두 버려졌다. NCCL 의 타임아웃을 기본값으로 두면 네트워크 카드가 다시 올라오기 전에 타임아웃이 나서 NCCL 이 completion error 를 냈다.
원인 ? DNS·네트워크 장애
MegaScale 은 초 단위 모니터링으로 링크 플래핑 같은 NIC 문제를 추적한다. 하트비트에 담긴 RDMA 트래픽 지표가 크게 떨어지거나 비정상적으로 흔들리면 드라이버가 사람이 조사하도록 알림을 보내고, 트래픽이 완전히 끊기면 자동으로 장애 복구 절차를 시작한다.
–
타임아웃 기준은 기본값에 맡기지 말고 명시적으로 크게 잡아야 한다. 기본값으로 두면 NCCL 은 네트워크 카드가 돌아오기 전에 타임아웃을 낸다. 플래핑의 근본 원인은 링크 품질이었다. 네트워크 카드, AOC 케이블, 스위치의 신호 품질을 하드웨어 수준에서 관리하고 나서야 빈도가 줄었다.
–