Incident Library
적용된 필터 증상NCCL 타임아웃기여 요인기본 설정 방치모두 풀기검색어 없이 필터만 적용한 목록입니다. 최근 사례부터입니다.
추천 필터 검색하면 검색어에서 찾은 분류 값이 여기에 나옵니다.

그래프

  • 원인
  • 구성 요소
  • 증상
  • 기여 요인
  • 사례

사례2건

2건 중 1~2번째

  1. 증상

    Databricks AI 의 한 학습 작업이 시작 7시간 만에 NCCL 타임아웃으로 실패했다.

    촉발

    RDMA NCCL 집합 통신에 쓰던 InfiniBand 포트 하나가 한 번 내려갔고, 다시 올라오기까지 NCCL_IB_TIMEOUT 보다 오래 걸렸다.

    원인
    구성 요소
    기여 요인
    감지

    학습 작업이 시작 7시간 만에 NCCL 타임아웃으로 죽으면서 드러났다. 연속 헬스 체크가 InfiniBand 포트 플래핑을 감시하고 있었지만, 포트가 한 번만 내려갔다 올라와서 임계값에 걸리지 않았다. 원인은 작업이 죽은 뒤 조사로 찾았다.

    조치
    • NCCL_IB_TIMEOUT 기본값을 짧은 포트 다운을 더 잘 견디도록 조정했다.
    • 워치독을 기다리지 않고, 포트 다운 신호가 오면 작업을 종료한 뒤 체크포인트에서 다시 시작하게 했다.
    • 이번 조사를 gpu-monitor 에 반영했다. gpu-monitor 의 RDMA 패브릭 포트 다운 점검은 플랩 횟수가 아니라 누적 다운 시간을 기준으로 한다.
    후속 조치
    • NCCL_IB_TIMEOUT 기본값을 더 잘 견디도록 조정했다.
    • 워치독이 터질 때까지 GPU 를 놀리지 않고, 포트 다운 신호가 오면 작업을 종료한 뒤 체크포인트에서 다시 시작하게 했다.
    • gpu-monitor 에서 RDMA 패브릭 포트 다운 감지를 플랩 횟수가 아니라 누적 다운 시간 기준으로 잡게 했다.
    교훈

    NCCL 타임아웃을 PyTorch 워치독 값으로만 생각하면 안 된다. InfiniBand 전송 계층의 NCCL_IB_TIMEOUT 은 기본값이 실제로 약 7초로, 대부분의 팀이 생각하는 것보다 훨씬 짧다. 이 값이 먼저 터지면 워치독 설정과 관계없이 작업이 죽는다. 링크 상태를 볼 때도 플랩 횟수가 아니라 누적 다운 시간을 봐야 한다. 한 번뿐인 긴 플랩도 며칠짜리 학습을 죽일 수 있다.

  2. 증상

    학습이 멈추거나 학습 속도가 떨어지는 일이 가끔 일어났다. 원인은 네트워크 인터페이스가 자주 끊겼다 다시 붙는 플래핑이었다.

    촉발

    네트워크 인터페이스가 몇 초 동안 내려갔다가 다시 올라오는 플래핑이 일어났다.

    원인
    구성 요소
    기여 요인
    감지

    MegaScale 은 초 단위 모니터링으로 링크 플래핑 같은 NIC 문제를 추적한다. 하트비트에 담긴 RDMA 트래픽 지표가 크게 떨어지거나 비정상적으로 흔들리면 드라이버가 사람이 조사하도록 알림을 보내고, 트래픽이 완전히 끊기면 자동으로 장애 복구 절차를 시작한다.

    조치
    • NCCL 의 타임아웃 기준을 기본값보다 큰 값으로 명시적으로 잡았다.
    • 링크 플래핑에서 빨리 회복하도록 NCCL 의 재전송 타이머와 재시도 횟수를 조정했다.
    • NIC 의 adap_retrans 기능을 켰다.
    • 네트워크 카드 신호 세기, AOC 케이블 품질, 스위치 쪽 신호 세기를 하드웨어 수준에서 관리해 플래핑 빈도를 줄였다.
    교훈

    타임아웃 기준은 기본값에 맡기지 말고 명시적으로 크게 잡아야 한다. 기본값으로 두면 NCCL 은 네트워크 카드가 돌아오기 전에 타임아웃을 낸다. 플래핑의 근본 원인은 링크 품질이었다. 네트워크 카드, AOC 케이블, 스위치의 신호 품질을 하드웨어 수준에서 관리하고 나서야 빈도가 줄었다.

내 클러스터에도 있는지 확인하기

이 2건에서 가장 많이 나오는 구성 요소: NCCL, InfiniBand 패브릭. kubegap 은 Claude Code 나 Codex 에서 쿠버네티스 클러스터를 읽기만 하며 이런 틈을 점검합니다. 점검 항목의 근거는 이 라이브러리와 같은 공개 보고서입니다.

원인별2