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

게임 렉 백서 › L11 디스크

HDD 탐색 지연 HDD seek latency

원인 ID dk-hdd · 주 담당 인프라팀·서버 인프라 · 함께 인프라팀·DB 인프라, 게임개발팀·서버 개발

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

HDD는 헤드가 플래터 위를 움직여야(탐색, seek) 해서 흩어진 데이터를 읽고 쓰는 데 한 번에 10ms 가까이 걸립니다.

왜 오래된 서버나 저가 스토리지에서 HDD 사용 → 그러면 흩어진 읽기·쓰기마다 약 10ms → 화면에서는 전반적인 저장·로딩 지연

증상
입력 지연
요인
지연
누가 겪나
서버 전체
언제
항상
담당
주 담당 인프라팀·서버 인프라 · 함께 인프라팀·DB 인프라, 게임개발팀·서버 개발
게임개발팀 할 일
순차 쓰기 위주 설계.
인프라팀 할 일
서버 장비·OS: SSD로 교체(흩어진 읽기·쓰기가 많은 저장 디스크부터). DB 장비: 흩어진 읽기·쓰기가 가장 많은 DB 디스크를 먼저 SSD로 교체.
그래프에서는
처음부터 늘 높음 · 디스크 읽기·쓰기 지연(r_await·w_await)
확인할 곳
lsblk -d -o NAME,ROTA로 회전 디스크(HDD)인지 확인하고, iostat -x 1의 r/s·w/s와 r_await·w_await를 봄. 가상 서버는 클라우드·스토리지 사양에서 디스크 종류를 확인함
이러면 맞음
회전 디스크이고 초당 요청이 수십~백여 개 수준인데도 r_await·w_await가 늘 수 ms~수십 ms
이러면 아님
SSD인데 지연이 높으면 대기열 포화(dk-iops)나 버스트 크레딧 소진(dk-burst) 쪽
확인 수단
인프라 도구로 확인(게임 코드 불필요)

출처

  1. Designs, Lessons and Advice from Building Large Distributed Systems (LADIS 2009 keynote) Google
    디스크 탐색 한 번 10ms, 디스크에서 1MB 순차 읽기 20ms
  2. Exos X18 Data Sheet Seagate
    7,200rpm HDD 평균 회전 지연 4.16ms, 4K 무작위 읽기 170 IOPS
  3. lsblk(8) — Linux manual page util-linux
    -o로 출력 열 선택, 장치 토폴로지 열에 ROTA(회전형 여부) 포함
  4. ABI stable symbols Linux kernel
    /sys/block/(디스크)/queue/rotational: 장치가 회전형인지 비회전형인지 나타냄
  5. iostat(1) — Linux manual page sysstat
    -x: r/s·w/s, r_await·w_await(대기열에서 기다린 시간을 포함한 요청당 평균 처리 시간)

함께 보면 좋은 원인

같은 층: L11 디스크

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

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