

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 即時效能統計資料
<a name="realtime-performance-stats"></a>

Amazon GameLift Streams 會在作用中串流工作階段期間收集效能統計資料，每秒測量資源使用率。使用這些統計資料來監控應用程式的效能、識別資源瓶頸，以及最佳化串流體驗。

效能統計資料包括應用程式層級統計資料 （特定應用程式的 CPU 和記憶體使用率） 和系統層級統計資料 （共用運算基礎設施的 CPU、記憶體、GPU 和 VRAM 使用率）。

您可以透過兩種方式接收效能統計資料：
+ **在工作階段期間即時：**使用 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 會在每個串流工作階段期間自動收集效能統計資料。當您匯出工作階段檔案時，統計資料會包含在匯出`stats/perf_stats_v1.csv`的 ZIP 檔案中。這可提供工作階段期間收集的所有統計資料的完整記錄，以進行工作階段後分析和偵錯。

如需匯出工作階段檔案的詳細資訊，請參閱 [匯出串流工作階段檔案](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`界面取得。如需確切的界面結構和屬性名稱，請參閱[入門產品頁面上的](https://aws.amazon.com/gamelift/streams/getting-started/) Amazon GameLift Streams Web SDK API 參考指南。


| 統計名稱 (CSV 資料欄） | Description | 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 記憶體） 百分比。 | 共用系統 | 