기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
실시간 성능 통계
Amazon GameLift Streams는 활성 스트림 세션 중에 성능 통계를 수집하여 초당 리소스 사용률을 측정합니다. 이러한 통계를 사용하여 애플리케이션의 성능을 모니터링하고, 리소스 병목 현상을 식별하고, 스트리밍 환경을 최적화합니다.
성능 통계에는 애플리케이션 수준 통계(특정 애플리케이션의 CPU 및 메모리 사용률)와 시스템 수준 통계(공유 컴퓨팅 인프라의 CPU, 메모리, GPU 및 VRAM 사용률)가 모두 포함됩니다.
다음 두 가지 방법으로 성능 통계를 수신할 수 있습니다.
-
세션 중 실시간: Amazon GameLift Streams Web SDK를 사용하여 수집되는 통계를 수신합니다. 이를 통해 애플리케이션과 상호 작용할 때 성능 오버레이를 구축하고 리소스 사용률을 모니터링할 수 있습니다.
-
세션 후를 CSV 파일로: 세션 파일을 내보내면 통계가 로 포함됩니다
stats/perf_stats_v1.csv. 세션 후 분석 및 디버깅에 대한 전체 레코드를 제공합니다.
성능 통계 수신
실시간 통계 수신
활성 세션 중에 클라이언트 애플리케이션에서 성능 통계를 수신하려면 StartStreamSession API를 호출할 true 때 SharedWithClient 파라미터를 로 설정합니다. Amazon GameLift Streams 웹 SDK는 스트리밍 세션에서 새 통계가 도착할 때마다 트리거되는 performanceStats 콜백을 제공합니다.
주의
최종 사용자와 함께 프로덕션 세션SharedWithClient에 대해를 활성화하지 마십시오. 내부 디버깅 및 테스트와 같이 클라이언트가 신뢰할 수 있는 경우에만 활성화합니다.
Amazon GameLift Streams Web SDK를 초기화할 때 성능 통계를 수신clientConnection.performanceStats할 콜백 함수로 설정합니다.
const gls = new gameliftstreams.GameLiftStreams({ videoElement: document.getElementById('streamVideoElement'), audioElement: document.getElementById('streamAudioElement'), inputConfiguration: { ... }, clientConnection: { ... performanceStats: (perfStats) => { // Your callback logic here console.log('CPU: ' + perfStats.application.cpuNormalized); console.log('Memory: ' + perfStats.application.memoryMB + ' MB'); console.log('GPU: ' + perfStats.system.gpuPercent + '%'); }, } });
콜백은 애플리케이션 수준 및 시스템 수준 통계가 모두 포함된 PerformanceStats 객체를 수신합니다. 인터페이스 구조에 대한 자세한 내용은 시작하기 제품 페이지의
Amazon GameLift Streams 콘솔에는 테스트 스트림 기능을 사용할 때 내장된 성능 오버레이도 포함되어 있으므로 구현 작업 없이 실시간으로 통계를 모니터링할 수 있습니다.
성능 통계를 Amazon GameLift Streams Web SDK의 getVideoRTCStats() 및 getAudioRTCStats() 함수에서 제공하는 WebRTC 통계와 결합할 수 있습니다. 이 조합은 네트워크 통계, 클라이언트 프레임 속도 및 리소스 사용률을 포함하여 스트리밍 성능에 대한 전체 그림을 제공합니다.
세션 후 통계 수신
Amazon GameLift Streams는 모든 스트림 세션 중에 성능 통계를 자동으로 수집합니다. 세션 파일을 내보낼 때 통계는 stats/perf_stats_v1.csv 내보낸 ZIP 파일에 로 포함됩니다. 세션 후 분석 및 디버깅을 위해 세션 중에 수집된 모든 통계에 대한 전체 레코드를 제공합니다.
세션 파일 내보내기에 대한 자세한 내용은 섹션을 참조하세요스트림 세션 파일 내보내기.
성능 통계 참조
다음 표에는 Amazon GameLift Streams에서 수집한 모든 성능 통계가 나열되어 있습니다. 애플리케이션 통계는 현재 세션에 고유하지만 공유 시스템 통계는 다중 테넌트 스트림 클래스의 세션별 공유 컴퓨팅의 총 사용률을 반영합니다.
다중 테넌트 스트림 클래스의 정규화된 통계
Amazon GameLift Streams는 여러 세션이 동일한 컴퓨팅 인스턴스를 공유할 수 있는 다중 테넌트 스트림 클래스를 지원합니다. 정규화된 통계(애플리케이션 CPU 및 메모리 사용률)는 할당된 공정 공유를 기준으로 애플리케이션의 리소스 사용량을 측정합니다. 공정 공유는 스트림 클래스 테넌시를 기반으로 컴퓨팅 인스턴스에서 사용 가능한 총 CPU와 메모리를 균등하게 나누어 계산됩니다.
값이 1.0이면 애플리케이션이 공정 공유 할당을 정확히 사용하고 있음을 의미합니다. 1.0 미만의 값은 할당보다 적게 사용하고 있음을 나타냅니다. 값이 1.0을 초과하면 과도하게 사용되어 세션 성능이 저하될 수 있습니다. 다중 테넌트 스트림 클래스(테넌시가 1보다 큼)에서 과도하게 사용하면 동일한 컴퓨팅 인스턴스를 공유하는 다른 세션에도 영향을 미칠 수 있습니다.
다음 표에 나열된 통계 이름은 내보낸 파일의 CSV 열 헤더로 사용됩니다. Amazon GameLift Streams Web SDK를 통해 실시간으로 통계를 수신하는 경우 이러한 통계는 카멜 대소문자의 속성 이름이 있는 PerformanceStats 인터페이스를 통해 사용할 수 있습니다. 정확한 인터페이스 구조 및 속성 이름은 시작하기 제품 페이지의
| 통계 이름(CSV 열) | 설명 | Scope |
|---|---|---|
timestamp |
ISO 8601 형식의 측정을 수행한 시간입니다. | 모두 |
app_cpu_normalized |
공정 공유 할당에 대해 정규화된 애플리케이션의 CPU 사용량입니다. 여기서 1.0은 목표 공정 공유 한도를 나타냅니다. 사용량이 1.0을 초과하면 과도하게 사용되어 성능 문제가 발생할 수 있습니다. | 애플리케이션 |
app_mem_mb |
애플리케이션에서 사용하는 총 메모리(RAM)(MiB로 측정) | 애플리케이션 |
app_mem_normalized |
공정 공유 할당에 대해 정규화된 애플리케이션의 메모리 사용량입니다. 여기서 1.0은 목표 공정 공유 한도를 나타냅니다. 사용량이 1.0을 초과하면 과도하게 사용되어 성능 문제가 발생할 수 있습니다. | 애플리케이션 |
shared_sys_cpu_pct |
공유 컴퓨팅에서 총 CPU 사용량의 백분율입니다. | 공유 시스템 |
shared_sys_mem_mb |
인스턴스에 사용된 총 메모리(MiB로 측정). | 공유 시스템 |
shared_sys_mem_pct |
공유 컴퓨팅에서 사용 중인 총 메모리의 백분율입니다. | 공유 시스템 |
shared_sys_gpu_pct |
공유 컴퓨팅 전반의 총 GPU 사용률 백분율입니다. | 공유 시스템 |
shared_sys_vram_mb |
공유 컴퓨팅에 사용된 총 VRAM(GPU 메모리)(MiB로 측정). | 공유 시스템 |
shared_sys_vram_pct |
공유 컴퓨팅에서 사용 중인 총 VRAM(GPU 메모리)의 백분율입니다. | 공유 시스템 |