한국어English日本語简体中文繁體中文DeutschไทยTiếng ViệtРусскийPortuguês (Brasil)EspañolBahasa Indonesia

게임 렉 백서 › L6 서버 네트워크 카드

인터럽트 병합 과다 Interrupt coalescing

원인 ID nic-coalesce · 주 담당 인프라팀·서버 인프라

그림과 실험이 있는 원본 카드로 열기 →

CPU 부담을 줄이려고 패킷을 모았다 한 번에 알리면, 모으는 시간만큼 늦어집니다.

왜 NIC가 일정 시간·개수만큼 모았다가 알림 → 그러면 모으는 동안 패킷이 대기 → 화면에서는 미세한 지연 증가. 보통은 작지만 과하면 ms 단위

증상
입력 지연
요인
지연
누가 겪나
서버 전체
언제
항상
담당
주 담당 인프라팀·서버 인프라
인프라팀 할 일
적응형 병합, 게임 서버에 맞는 값으로 조정(ethtool -C).
수치 감각
보통 수십~수백 µs. 게임에는 대개 무시할 수준이지만 설정이 과하면 ms로 커집니다.
그래프에서는
처음부터 늘 높음 · 같은 데이터센터 안 왕복 시간
확인할 곳
ethtool -c로 현재 병합 설정(adaptive-rx, rx-usecs, rx-frames)을 보고 같은 데이터센터의 다른 서버와 ping 왕복 시간을 설정을 바꾸기 전후로 비교
이러면 맞음
rx-usecs가 수백 µs 이상으로 크게 잡혀 있고 값을 줄이면 같은 데이터센터 안 왕복 시간이 그만큼 줄어듦
이러면 아님
줄여도 왕복 시간이 그대로면 이 원인이 아님
확인 수단
인프라 도구로 확인(게임 코드 불필요)

출처

  1. Linux Driver for Intel(R) Ethernet Network Connection (e1000e) Linux kernel
    기본은 적응형 인터럽트 조절로 초당 4,000~20,000번(간격 50~250µs), 인터럽트를 줄이면 CPU는 아끼지만 지연이 늘어남
  2. Linux Base Driver for Intel(R) Ethernet Network Connection (e1000) Linux kernel
    RxIntDelay로 수신 인터럽트를 1.024µs 단위로 최대 65,535까지(약 67ms) 늦출 수 있고, 값을 키우면 수신 지연이 늘어남
  3. ethtool(8) — Linux manual page ethtool
    ethtool -C의 adaptive-rx·rx-usecs·rx-frames 설정

함께 보면 좋은 원인

같은 층: L6 서버 네트워크 카드

같은 증상(입력 지연)의 다른 층 원인

그림과 실험이 있는 원본 카드 보기