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

게임 렉 백서 › L7 서버 OS (커널)

예약 작업 Cron jobs (log rotation, backup, scans)

원인 ID so-cron · 주 담당 인프라팀·서버 인프라

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

매일 같은 시각에 도는 로그 압축·백업·보안 검사가 CPU와 디스크를 차지합니다.

왜 정해진 시각에 OS 작업이 실행 → 그러면 CPU·디스크를 게임 서버와 나눠 씀 → 화면에서는 매일 새벽 4시처럼 정해진 시각에 뚝뚝 끊김·슬로우모션

증상
뚝뚝 끊김, 슬로우모션
요인
정체
누가 겪나
서버 전체
언제
일정한 주기로
담당
주 담당 인프라팀·서버 인프라
인프라팀 할 일
작업 시각 분산, 우선순위 낮추기(nice, ionice), 게임 서버와 분리(별도 서버에서 실행).
그래프에서는
일정 주기로 튐 · CPU 사용률, 디스크 대기열, 서버 틱 시간
확인할 곳
crontab과 systemctl list-timers로 예약 작업의 실행 시각을 모으고, 틱이 튄 시각에 pidstat -u -d로 어떤 프로세스가 CPU·디스크를 쓰는지 봄
이러면 맞음
틱이 매일(또는 매시) 같은 시각에 튀고 그 시각에 예약 작업 프로세스가 CPU·디스크를 차지함
이러면 아님
튀는 시각이 매일 같은 시각과 맞지 않으면 이 원인이 아님. 몇 초·몇 분 간격으로 튀면 “서버 GC 전체 멈춤”, “타이머 동시 발동 몰림”
확인 수단
인프라 도구로 확인(게임 코드 불필요)

출처

  1. ionice(1) — Linux manual page util-linux
    idle 클래스 작업은 다른 프로그램이 디스크를 쓰지 않을 때만 I/O를 받음
  2. systemd.timer(5) — Linux manual page systemd
    RandomizedDelaySec로 예약 작업 시각을 무작위로 늦춰 부하 몰림을 줄임
  3. systemctl(1) — Linux manual page systemd
    list-timers: 타이머 유닛을 다음 실행 시각 순으로 보여 줌
  4. pidstat(1) — Linux manual page sysstat
    -u는 CPU, -d는 디스크 I/O를 프로세스별로 보여 줌

함께 보면 좋은 원인

같은 층: L7 서버 OS (커널)

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

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