

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# リアルタイムのパフォーマンス統計
<a name="realtime-performance-stats"></a>

Amazon GameLift Streams は、アクティブなストリームセッション中にパフォーマンス統計を収集し、毎秒リソース使用率を測定します。これらの統計を使用して、アプリケーションのパフォーマンスをモニタリングし、リソースのボトルネックを特定し、ストリーミングエクスペリエンスを最適化します。

パフォーマンス統計には、アプリケーションレベルの統計 (特定のアプリケーションの CPU とメモリの使用率) とシステムレベルの統計 (共有コンピューティングインフラストラクチャの CPU、メモリ、GPU、VRAM の使用率) の両方が含まれます。

パフォーマンス統計は、次の 2 つの方法で受け取ることができます。
+ **セッション中にリアルタイムで:** Amazon GameLift Streams Web SDK を使用して、収集された統計情報を受け取ります。これにより、パフォーマンスオーバーレイを構築し、アプリケーションを操作する際のリソース使用率をモニタリングできます。
+ **CSV ファイルとしてのセッション後:** セッションファイルをエクスポートすると、統計は として含まれます`stats/perf_stats_v1.csv`。これにより、セッション後の分析とデバッグの完全なレコードが提供されます。

## パフォーマンス統計を受信する
<a name="realtime-performance-stats-using"></a>

### 統計をリアルタイムで受信する
<a name="realtime-performance-stats-using-realtime"></a>

アクティブなセッション中にクライアントアプリケーションでパフォーマンス統計を受信するには、 `StartStreamSession` API を呼び出す**true**ときに `SharedWithClient`パラメータを に設定します。Amazon GameLift Streams Web 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`オブジェクトを受け取ります。インターフェイス構造の詳細については、[入門製品ページの](https://aws.amazon.com/gamelift/streams/getting-started/) Amazon GameLift Streams Web SDK ドキュメントを参照してください。

Amazon GameLift Streams コンソールには、テストストリーム機能を使用する際のパフォーマンスオーバーレイも組み込まれているため、実装作業を行わずにリアルタイムで統計をモニタリングできます。

Amazon GameLift Streams Web SDK の および 関数によって提供される WebRTC 統計とパフォーマンス統計を組み合わせることができます。 `getVideoRTCStats()` `getAudioRTCStats()`この組み合わせは、ネットワーク統計、クライアントフレームレート、リソース使用率など、ストリーミングパフォーマンスの全体像を提供します。

### セッション後の統計を受信する
<a name="realtime-performance-stats-using-csv"></a>

Amazon GameLift Streams は、すべてのストリームセッション中にパフォーマンス統計を自動的に収集します。セッションファイルをエクスポートすると、統計はエクスポートされた ZIP ファイル`stats/perf_stats_v1.csv`内の として含まれます。これにより、セッション後の分析とデバッグのためにセッション中に収集されたすべての統計の完全な記録が提供されます。

セッションファイルのエクスポートの詳細については、「」を参照してください[ストリームセッションファイルのエクスポート](stream-sessions-export-files.md)。

## パフォーマンス統計リファレンス
<a name="realtime-performance-stats-csv"></a>

次の表に、Amazon GameLift Streams によって収集されたすべてのパフォーマンス統計を示します。アプリケーション統計は現在のセッションに固有ですが、共有システム統計はマルチテナントストリームクラスのセッションごとの共有コンピューティングの合計使用率を反映しています。

**マルチテナントストリームクラスの正規化された統計**  
Amazon GameLift Streams は、複数のセッションが同じコンピューティングインスタンスを共有するマルチテナントストリームクラスをサポートしています。正規化された統計 (アプリケーションの CPU とメモリの使用率) は、割り当てられた公平配分に対するアプリケーションのリソース使用率を測定します。公平配分は、ストリームクラスのテナンシーに基づいてコンピューティングインスタンスで使用可能な CPU とメモリの合計を均等に割って計算されます。  
値 1.0 は、アプリケーションが公平配分を正確に使用していることを意味します。1.0 未満の値は、 が割り当てより少ないことを示します。値が 1.0 を超えると、使用率が高くなり、セッションのパフォーマンスが低下する可能性があります。マルチテナントストリームクラス (テナンシーが 1 より大きい) では、使用率が高いと、同じコンピューティングインスタンスを共有する他のセッションにも影響する可能性があります。

次の表に示す統計名は、エクスポートされたファイルの CSV 列ヘッダーとして使用されます。Amazon GameLift Streams Web SDK を介してリアルタイムで統計を受け取る場合、これらの統計はキャメルケースのプロパティ名を持つ`PerformanceStats`インターフェイスを介して使用できます。正確なインターフェイス構造とプロパティ名については、入門製品ページの「Amazon GameLift Streams Web SDK API リファレンスガイド」を参照してください。 [https://aws.amazon.com/gamelift/streams/getting-started/](https://aws.amazon.com/gamelift/streams/getting-started/)


| 統計名 (CSV 列) | 説明 | [Scope] (スコープ) | 
| --- | --- | --- | 
| timestamp | ISO 8601 形式で測定が行われた時刻。 | すべて | 
| app\$1cpu\$1normalized | 公平配分配分に対して正規化されたアプリケーションの CPU 使用率。1.0 は目標公平配分制限を表します。1.0 を超える使用量は過剰使用率を示し、パフォーマンスの問題につながる可能性がある | アプリケーション | 
| app\$1mem\$1mb | アプリケーションで使用される合計メモリ (RAM) (MiB で測定) | アプリケーション | 
| app\$1mem\$1normalized | 公平配分配分に対して正規化されたアプリケーションのメモリ使用量。1.0 は目標公平配分制限を表します。1.0 を超える使用量は過剰使用率を示し、パフォーマンスの問題につながる可能性がある | アプリケーション | 
| shared\$1sys\$1cpu\$1pct | 共有コンピューティング全体の合計 CPU 使用率。 | 共有システム | 
| shared\$1sys\$1mem\$1mb | インスタンスで使用されている合計メモリ (MiB で測定）。 | 共有システム | 
| shared\$1sys\$1mem\$1pct | 共有コンピューティング全体で使用されている合計メモリの割合。 | 共有システム | 
| shared\$1sys\$1gpu\$1pct | 共有コンピューティング全体の GPU 使用率の合計の割合。 | 共有システム | 
| shared\$1sys\$1vram\$1mb | 共有コンピューティングで使用される合計 VRAM (GPU メモリ) (MiB で測定）。 | 共有システム | 
| shared\$1sys\$1vram\$1pct | 共有コンピューティング全体で使用されている合計 VRAM (GPU メモリ) の割合。 | 共有システム | 