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

게임 렉 백서 › L11 디스크

백업·압축·검사 작업 Backup / compression / scans

원인 ID dk-backup · 주 담당 인프라팀·서버 인프라 · 함께 인프라팀·DB 인프라

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

새벽 백업, 로그 압축, 보안 검사가 디스크를 독점하면 게임 서버의 읽기·쓰기가 밀립니다.

왜 예약된 백업·압축 작업 시작 → 그러면 디스크 대역폭과 IOPS를 대부분 차지 → 화면에서는 매일 같은 시각 렉

증상
뚝뚝 끊김, 입력 지연
요인
정체, 지연
누가 겪나
서버 전체
언제
일정한 주기로
담당
주 담당 인프라팀·서버 인프라 · 함께 인프라팀·DB 인프라
인프라팀 할 일
서버 장비·OS: 백업·압축·검사 작업의 I/O 우선순위 낮추기, 시각 분산. DB 장비: 백업은 복제본에서.
그래프에서는
일정 주기로 튐 · 디스크 이용률, 디스크 대기 시간
확인할 곳
sar -d로 지난 며칠 기록(/var/log/sa의 일별 파일, sadc가 -S DISK로 디스크 항목까지 모아야 함)의 %util·await·aqu-sz를 날짜별로 겹쳐 보고, 그 시각에 pidstat -d 1로 kB_rd/s·kB_wr/s가 가장 큰 프로세스를 찾아 크론·systemd 타이머 일정과 대조함
이러면 맞음
매일 같은 시각 await와 %util이 솟고 그때 백업·압축·검사 프로세스가 디스크 읽기·쓰기 대부분을 차지함
이러면 아님
솟는 시각이 날마다 다르면 예약 작업일 가능성이 낮음. 그 시각 I/O 대부분이 게임 서버 자신이면 저장·로그 쪽(dk-fsync, dk-sync-log)
확인 수단
인프라 도구로 확인(게임 코드 불필요)

출처

  1. ionice(1) — Linux manual page util-linux
    idle 클래스로 돌린 작업은 다른 프로그램이 디스크를 쓰지 않을 때만 디스크 시간을 받음
  2. Using Replication for Backups MySQL
    복제본을 멈추고 백업해도 주 DB 운영에 영향이 없음
  3. sar(1) — Linux manual page sysstat
    -d: 일별 기록 파일(기본 /var/log/sa)의 장치별 await·aqu-sz·%util, 디스크 항목은 sadc의 -S DISK 옵션으로 모아야 함
  4. pidstat(1) — Linux manual page sysstat
    -d: 프로세스별 kB_rd/s·kB_wr/s(초당 디스크 읽기·쓰기량)

함께 보면 좋은 원인

같은 층: L11 디스크

같은 증상(뚝뚝 끊김)의 다른 층 원인

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