게임 렉 백서 › L2 클라이언트 OS·기기
클라이언트 메모리 부족·스왑 Paging / swap on client
원인 ID co-swap · 주 담당 외부·외부 · 함께 게임개발팀·클라이언트 개발
그림과 실험이 있는 원본 카드로 열기 →
브라우저 탭 수십 개와 게임을 함께 켜 두면 OS가 게임 메모리 일부를 디스크로 내보냅니다.
왜 전체 램이 부족해짐 → 그러면 OS가 당장 안 쓰는 게임 메모리를 디스크로 옮김 → 화면에서는 그 부분을 다시 쓰는 순간 저장장치에 따라 수십~수백 ms 멈춤
- 증상
- 멈춤, 뚝뚝 끊김
- 요인
- 정체
- 누가 겪나
- 나만
- 언제
- 이동 중·지역 전환 때, 가끔 무작위로
- 담당
- 주 담당 외부·외부 · 함께 게임개발팀·클라이언트 개발
- 게임개발팀 할 일
- 메모리 사용량 줄이기, 남은 메모리가 적으면 경고 표시.
- 외부 할 일
- 유저에게 최소 사양 안내, 게임 중 다른 프로그램(브라우저 탭 등) 종료 안내.
- 그래프에서는
- 가끔 무작위로 튐 · 하드 페이지 폴트, 메모리 사용량
- 확인할 곳
- 성능 모니터의 Memory\Pages Input/sec(하드 페이지 폴트를 해결하려고 디스크에서 읽은 페이지 수)와 작업 관리자 성능 탭의 메모리 사용량·커밋을 프레임 시간과 함께 기록
- 이러면 맞음
- 멈춘 순간 Pages Input/sec가 솟고 메모리가 거의 꽉 차 있음. 브라우저 등 다른 프로그램을 닫으면 사라짐
- 이러면 아님
- 메모리에 여유가 있고 Pages Input/sec가 조용하면 “메인 스레드 동기 로딩·셰이더 컴파일”이나 “저장장치가 느려 에셋 스트리밍이 밀림”
- 확인 수단
- 유저 쪽 환경에서 확인
출처
- Introduction to the page file Microsoft
페이지 파일은 디스크에 있는 파일로, 자주 안 쓰는 수정된 메모리 페이지를 램에서 내보내는 데 씀 - Working Set Microsoft
램에 없는 페이지를 건드리면 페이지 폴트, 하드 폴트는 페이지 파일 등 디스크에서 읽어 와야 해결됨 - Chapter 12 - Detecting Memory Bottlenecks Microsoft
Memory\Pages Input/sec: 페이지 폴트를 해결하려고 디스크에서 읽은 페이지 수(하드 페이지 폴트)
함께 보면 좋은 원인
같은 층: L2 클라이언트 OS·기기
같은 증상(멈춤)의 다른 층 원인
그림과 실험이 있는 원본 카드 보기