共用方式為


工作階段

Windows Performance Recorder (WPR) 擴充 Windows (ETW 事件追蹤) 。 ETW 記錄會話是記憶體內部緩衝區的集合,可透過 ETW 提供者應用程式開發介面 (API) 接受事件。 這些緩衝區通常是非分頁的,並由核心管理。 ETW 會將緩衝區指派給每個處理器。 ETW 事件產生和緩衝是無鎖定的,可讓 ETW 記錄所有類型的事件。

每次 ETW 呼叫 EventWrite 方法時,ETW 都會在目前緩衝區中保留 ETW 配置給執行呼叫執行緒的處理器空間。 然後,ETW 會將事件標頭和使用者資料複製到該空間。 當緩衝區已滿時,ETW 會將緩衝區排清至記錄會話的記錄檔或即時串流取用者。 ETW 接著會將可用緩衝區指派給該處理器。

如果記錄輸送量超過排清器釋放緩衝區的能力,記錄會話中的所有可用緩衝區空間可能會變成無法使用。 例如,這可能是因為磁片寫入輸送量低於傳入的事件輸送量。 這會導致 EventWrite 引發ERROR_NOT_ENOUGH_MEMORY錯誤,並遺失事件資料。 在這種情況下,ETW 會遞增記錄會話的 EventsLost 屬性,讓取用者可以看到資料遺失。

如需如何避免在錄製中遺失事件的詳細資訊,請參閱 避免遺失事件

記錄至記憶體或檔案

您可以設定設定檔,將事件資料記錄到記憶體中的緩衝區或檔案中。 緩衝模式是記憶體內部迴圈會話。 您可以將此會話的內容儲存為快照集,以在要求時將事件追蹤記錄檔儲存 (ETL) 檔案。 當您儲存內容時,WPR 不會排清記憶體內部緩衝區空間的內容。

您可以持續保留緩衝模式會話。 如果您不知道感興趣的行為何時發生,這特別有用。 當所需的迴圈緩衝區空間小到足以保留在記憶體中時,請選擇緩衝模式。 循序記錄檔最適合用於受控制的案例。 例如,您可以使用循序記錄檔進行迴歸測試,或當感興趣的行為出現更容易預測時。

如需記錄選項的詳細資訊,請參閱 記錄模式

錄製設定檔

錄製設定檔可控制每個會話。 設定檔可以是內建設定檔或使用者定義的設定檔。 如需詳細資訊,請參閱 錄製設定檔

緩衝區大小

緩衝區大小對於控制 I/O 效率很重要,並確保 WPR 不會略過大型事件。 非常小的緩衝區可以降低 I/O 寫入效率。 我們建議最小緩衝區大小為 64 KB 或 128 KB,以提升良好的寫入效能,並減少磁片額外負荷和遺失事件。 緩衝區大小決定錄製的最大持續時間。 ETW 會將最大事件大小限制為大約 64 KB。

Collectors

您必須為錄製設定檔中的會話定義系統收集器和一或多個事件收集器。 收集器名稱對系統而言必須是唯一的,而且系統必須具有記錄檔的獨佔寫入權限。 記錄檔的名稱也必須在所有收集器的檔案名之間是唯一的。 WPR 不會展開環境變數,因此必須指定記錄檔的路徑,而不需環境變數。 如需詳細資訊,請參閱 1。收集器定義

提供者

記錄會話會從一組定義的系統和事件提供者收集。 這是每個會話設定的重要專案。 大部分的提供者都可以與會話具有多對多關聯性。 某些事件需要特殊提供者,例如核心或堆積事件。 如需詳細資訊,請參閱 提供者

WPR 功能

WPR 常見案例

錄製設定檔

緩衝區

BufferSize