사용 가능한 지표 - Amazon GameLift Servers

사용 가능한 지표

지표는 세 가지 범주로 구분됩니다.

  • 자동으로 수집된 지표

  • SDK 제공 지표

  • 사용자 지정 지표

자동 지표 수집

이러한 지표에는 코드 변경이 필요하지 않습니다.

인스턴스 지표

지표 유형 설명 사용 사례
CPU 인스턴스당 사용률 리소스 모니터링
메모리 물리적 메모리 사용량 및 백분율 용량 계획
네트워크 I/O 전송/수신된 바이트 및 패킷 연결 상태
디스크 I/O 읽기/쓰기 작업 및 처리량 스토리지 성능

플릿 지표

지표 유형 설명 사용 사례
활성 인스턴스 실행 중인 인스턴스 수 플릿 조정
게임 세션 활성 및 사용 가능한 세션 용량 관리
충돌된 게임 세션 충돌된 게임 세션 오류 모니터링

SDK 제공 지표

다음 코드에는 SDK 함수 호출이 필요합니다.

서버 타이밍 지표

지표 설명 구현
서버 델타 시간 현재 서버 틱과 이전 서버 틱 간의 시간 차이입니다. 서버 틱 속도의 일관성을 측정합니다. GetDeltaTime() 호출
서버 틱 속도 서버가 업데이트를 처리하는 초당 횟수를 표시합니다. 자동으로 계산됨
서버 틱 시간 서버가 단일 틱 또는 업데이트를 처리하는 데 걸리는 시간 GetTickTime() 호출
서버 월드 틱 시간 서버가 각 틱으로 게임 월드를 업데이트하는 데 걸리는 시간 GetWorldUpdateTime() 호출

구현: 엔진에 구애받지 않는 SDK(C++, C#, Go)의 경우 계산된 타이밍 값으로 게임 루프에서 SDK 함수를 호출하여 이러한 지표를 구현합니다. 엔진 플러그인(Unreal, Unity)의 경우 이러한 지표는 엔진 통합을 통해 자동으로 캡처됩니다.

네트워크 지표

지표 설명 구현
연결 서버가 설정한 총 네트워크 연결 수 InitMetrics() 이후 자동
네트워크 I/O(바이트) 서버가 네트워크를 통해 송신 및 수신하는 총 바이트 수 InitMetrics() 이후 자동
네트워크 I/O(패킷) 서버가 송신 및 수신하는 총 네트워크 패킷 수 InitMetrics() 이후 자동
패킷 손실 전송 중에 손실되는 네트워크 패킷의 백분율 InitMetrics() 이후 자동

구현: SDK 함수 호출을 네트워킹 라이브러리와 통합합니다. SDK는 다양한 네트워크 구현에 대한 지침을 제공합니다.

프로세스 지표

지표 설명 구현
CPU 사용량(%) 게임 서버 프로세스에서 사용 중인 CPU 리소스의 백분율 InitMetrics() 이후 자동
메모리 사용량(단위) 서버 프로세스에서 사용 중인 총 메모리 양 InitMetrics() 이후 자동
물리적 메모리 사용량(%) 현재 사용 중인 서버의 총 물리적 메모리 백분율 InitMetrics() 이후 자동
서버 상태 게임 서버 상태 InitMetrics() 이후 자동

구현: 이러한 지표는 각 게임 세션 프로세스에 대해 SDK에서 자동으로 수집됩니다.

프로세스별 대시보드 조직

프로세스별 지표는 두 가지 특수 대시보드에서 사용할 수 있습니다.

  • 서버 성능 대시보드 - 개별 게임 세션에 대한 서버 타이밍(델타 시간, 틱 속도, 틱 시간, 월드 틱 시간), 네트워크 지표(연결, I/O 바이트/패킷, 패킷 손실), 메모리 사용량, CPU 사용량을 포함합니다.

  • 인스턴스 성능 대시보드 - 인스턴스 리소스 소비에 가장 많이 기여하는 프로세스를 식별하는 데 도움이 되는 ‘상위 N개 메모리 소비 게임 세션’ 및 ‘상위 N개 CPU 소비 게임 세션" 표를 제공합니다. 게임 세션 링크를 클릭하면 세부 지표를 심층적으로 조사할 수 있습니다.

프로세스별 지표 사용 사례

프로세스별/게임 세션별 지표는 다음 모니터링 시나리오를 지원합니다.

  • 심층 성능 조사 - 특정 프로세스 또는 게임 세션으로 인해 호스트/인스턴스의 성능이 저하된 경우 프로세스별 지표는 상위 CPU 및 메모리 소비 게임 세션 표를 통해 문제가 발생한 프로세스를 식별하는 데 도움이 됩니다.

  • 게임 서버 충돌 조사 - 게임 세션이 충돌할 때 이러한 지표는 충돌이 메모리 부족, CPU 과부하 또는 네트워크 대역폭 문제로 인한 것인지 확인하는 데 도움이 됩니다.

  • 플레이어 보고 문제 조사 - 플레이어가 게임 플레이 중에 지연 또는 중단을 보고하면 프로세스별 지표는 CPU, 메모리, 네트워크, 틱 시간 또는 월드 업데이트 시간의 병목 현상을 식별하는 데 도움이 됩니다.

  • 다양한 빌드의 성능 변화 식별 - 틱 시간, 틱 속도, 월드 업데이트 시간 지표를 통해 개발자는 다양한 서버 빌드에서 게임 성능이 어떻게 변경되는지 측정할 수 있습니다.

  • 게임 플레이의 지연 및 느려짐 감지 - 틱 시간, 틱 속도, 월드 업데이트 시간 지표는 서버가 게임을 업데이트하는 속도를 반영하므로 플레이어 경험에 직접적인 영향을 미칩니다.

  • 벤치마킹 - 플레이어 수, 게임 모드, 기타 변수와 같은 요인을 기반으로 다양한 게임 시나리오가 서버 성능에 미치는 영향을 식별합니다.

대시보드 조직

지표는 다양한 모니터링 시나리오를 위해 Amazon Managed Grafana의 특수 대시보드로 구성됩니다. 사용 가능한 대시보드는 플릿 유형에 따라 다릅니다.

EC2 플릿 대시보드

  • EC2 플릿 개요 대시보드 - 상위 수준 플릿 용량, 조정 인사이트, 동시 플레이어(CCU), 인스턴스, 플레이어 용량, 충돌된 게임 세션.

  • 인스턴스 개요 대시보드 - 평균 CPU, 메모리, 네트워크, 디스크 사용률을 포함한 모든 인스턴스의 집계된 호스트 수준 지표.

  • 인스턴스 성능 대시보드 - 리소스 집약적인 프로세스를 식별하기 위한 ‘상위 N개 메모리 소비 게임 세션’ 및 ‘상위 N개 CPU 소비 게임 세션’ 표가 있는 개별 인스턴스에 대한 세부 지표.

  • 서버 성능 대시보드(EC2) - EC2 인스턴스의 개별 게임 세션에 대한 게임 루프 타이밍, 네트워크 성능, 메모리, CPU 지표.

컨테이너 플릿 대시보드

  • 컨테이너 플릿 개요 대시보드 - CPU 예약, 메모리 사용률, 컨테이너 그룹 상태를 포함한 컨테이너 플릿 리소스 사용률에 대한 상위 수준 개요.

  • 컨테이너 성능 대시보드 - CPU 사용률, 메모리 사용량, 네트워크 I/O, 스토리지 성능을 포함하여 특정 ECS 작업 내의 개별 컨테이너에 대한 세부 지표.

  • 서버 성능 대시보드(컨테이너) - 컨테이너의 개별 게임 세션에 대한 게임 루프 타이밍, 네트워크 성능, 메모리, CPU 지표.

자세한 대시보드 정보와 사용 지침은 대시보드 조직 및 사용량 섹션을 참조하세요.