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

게임 렉 백서 › L11 디스크

코어 덤프 기록 Core dump writing

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

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

서버가 죽을 때 수 GB 메모리를 디스크에 기록하느라 재시작이 몇 분씩 늦어지기도 합니다.

왜 서버 크래시로 메모리 전체를 파일로 기록 → 그러면 수 GB를 쓰는 동안 재시작 불가 → 화면에서는 서버가 죽어 접속이 끊긴 뒤 한참 동안 접속 불가

증상
접속 불가·무한 로딩
요인
정체
누가 겪나
서버 전체
언제
가끔 무작위로
담당
주 담당 인프라팀·서버 인프라 · 함께 게임개발팀·서버 개발
게임개발팀 할 일
필요한 메모리만 담는 작은 덤프(미니 덤프) 방식 검토, 크래시 원인 수정.
인프라팀 할 일
덤프 크기 제한(OS 코어 덤프 설정), 빠른 디스크, 재시작과 덤프 분리(덤프 압축·업로드는 재시작 뒤 따로 처리).
그래프에서는
연결이 한꺼번에 끊김 · 접속 수, 서버 재시작 시각
확인할 곳
크래시 시각과 코어 파일 크기(coredumpctl list·info, 또는 core_pattern이 가리키는 곳의 파일), 파일이 다 써진 시각, 서비스가 다시 뜬 시각을 나란히 놓고 그동안 iostat -x의 wkB/s를 봄
이러면 맞음
크래시 뒤 수 GB짜리 코어 파일을 쓰는 동안 디스크 쓰기가 한도 가까이 붙어 있고, 기록이 끝난 뒤에야 재시작이 시작됨
이러면 아님
코어 덤프가 꺼져 있거나 작게 끝났는데도 재시작이 늦으면 맵 로딩이나 DB 콜드 캐시(db-cold-cache) 같은 서버 시작 과정 쪽
확인 수단
인프라 도구로 확인(게임 코드 불필요)

출처

  1. core(5) — Linux manual page Linux man-pages
    RLIMIT_CORE로 코어 파일 크기 상한, coredump_filter로 담을 메모리 영역 선택, 코어 덤프를 프로그램으로 파이프해 따로 처리
  2. Minidump Files Microsoft
    미니 덤프는 크래시 덤프 정보의 유용한 일부만 담아 빠르고 작게 만듦
  3. coredumpctl(1) — Linux manual page systemd
    list: 저널에 남은 코어 덤프 목록(TIME은 커널이 알린 크래시 시각), info: 덤프별 상세와 디스크에 쓴 크기
  4. iostat(1) — Linux manual page sysstat
    -x: wkB/s(초당 디스크 쓰기량)

함께 보면 좋은 원인

같은 층: L11 디스크

같은 증상(접속 불가·무한 로딩)의 다른 층 원인

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