監視並最佳化內部部署資料閘道效能
閘道效能監視 (公開預覽)
為了監視效能,閘道系統管理員傳統上依賴透過 Windows 效能監視器 工具手動監視性能計數器。 我們現在提供額外的查詢記錄和 閘道效能 PBI 範本檔案 ,以可視化結果。 這項功能提供閘道使用量的新見解。 您可以使用它來針對執行緩慢的查詢進行疑難解答。
注意
此功能目前僅適用於標準模式中的內部部署數據閘道。 個人模式無法使用。
注意
網關診斷不會直接擷取與 (虛擬機) 及其網路相關的診斷,例如頻寬或延遲。 不過,這些診斷可能會影響您的閘道效能。 您可以使用資源監視工具來監視您的電腦。
效能記錄
此功能現在預設為開啟。
注意
- 目前,此記錄有時會遺漏從進階容量到閘道的查詢。 我們正積極努力修正此問題。
- 目前,Power BI 編頁報表查詢不會使用此工具記錄。
設定效能記錄
組態檔 C:\Program Files\On-premises data gateway\Microsoft.PowerBI.DataMovement.Pipeline.GatewayCore.dll.config
中有其他值,您可以視需要更新:
- ReportFilePath:決定儲存四個記錄檔的路徑。 根據預設,此路徑為 \Users\PBIEgwService\AppData\Local\Microsoft\On-premises data gateway\Report 或 \Windows\ServiceProfiles\PBIEgwService\AppData\Local\Microsoft\On-premises data gateway\Report。 路徑取決於OS版本。 如果您使用 PBIEgwService 以外的閘道服務帳戶,請將路徑的這個部分取代為服務帳戶名稱。
- ReportFileCount:決定要保留之每一種記錄檔的數目。 預設值為 10。
- ReportFileSizeInBytes:決定要維護的檔案大小。 預設值為 104,857,600。
- QueryExecutionAggregationTimeInMinutes:決定匯總查詢執行資訊的分鐘數。 預設值是 5。
- SystemCounterAggregationTimeInMinutes:決定匯總系統計數器的分鐘數。 預設值是 5。
對組態檔進行變更之後,請重新啟動閘道,讓這些組態值生效。 報表檔案現在會在您為 ReportFilePath 指定的位置中產生。
注意
最多可能需要 10 分鐘的時間加上組態檔中 QueryExecutionAggregationTimeInMinutes 所設定的時間量,直到檔案開始顯示在資料夾中為止。
瞭解效能記錄
當您開啟此功能時,會建立四個新的記錄檔:
- 查詢執行報表
- 查詢開始報表
- 查詢執行匯總報表
- 係統計數器匯總報告
查詢執行報表包含詳細的查詢執行資訊。 擷取下列屬性。
屬性 | 描述 |
---|---|
GatewayObjectId | 閘道的唯一標識碼。 |
RequestId | 閘道要求的唯一標識碼。 多個查詢可能相同。 |
DataSource | 包含數據源類型和數據來源。 |
QueryTrackingId | 查詢的唯一標識碼。 不過,如果查詢失敗並重試,可能會重複。 |
QueryExecutionEndTimeUTC | 查詢執行完成的時間。 |
QueryExecutionDuration (ms) | 查詢執行的持續時間。 |
QueryType | 查詢的類型。 例如,傳遞的查詢可能是 Power BI 重新整理或 DirectQuery。 或者,這可能是來自 Power Apps 和 Power Automate 的查詢。 |
DataProcessingEndTimeUTC | 數據處理活動的時間,例如多任務緩衝處理、數據擷取、壓縮和數據處理完成。 |
DataProcessingDuration (ms) | 數據處理活動的持續時間,例如多任務緩衝處理、數據擷取、壓縮和數據處理。 |
「成功」 | 指出查詢是否成功或失敗。 |
ErrorMessage | 如果查詢失敗,表示錯誤訊息。 |
SpoolingDiskWritingDuration (ms) | 指出閘道將所有數據寫入磁碟的時間量 |
SpoolingDiskReadingDuration (ms) | 指出閘道將所有數據讀取至磁碟的時間量 |
SpoolingTotalDataSize (bytes) | 寫入/讀取磁碟的數據大小(已壓縮) |
DataReadingAndSerializationDuration (ms) | 指出閘道從數據源讀取資料所需的時間,並將其串行化為封包。 |
DiskRead (位元組/秒) | 指出閘道每秒讀取的位元組。 DiskRead(byte/sec) = SpoolingTotalDataSize / SpoolingDiskReadingDuration |
DiskWrite (byte/sec) | 表示閘道每秒寫入的位元組。 DiskWrite(byte/sec) = SpoolingTotalDataSize / SpoolingDiskWritingDuration |
查詢開始報表包含查詢和查詢開始時間。 擷取下列屬性。
屬性 | 描述 |
---|---|
GatewayObjectId | 閘道的唯一標識碼。 |
RequestId | 閘道要求的唯一標識碼。 多個查詢可能相同。 |
DataSource | 包含數據源類型和數據來源。 |
QueryTrackingId | 查詢的唯一標識碼。 不過,如果查詢失敗並重試,可能會重複。 |
QueryExecutionStartTimeUTC | 查詢執行開始的時間。 |
QueryType | 查詢的類型。 例如,傳遞的查詢可能是 Power BI 重新整理或 DirectQuery。 或者,這可能是來自 Power Apps 和 Power Automate 的查詢。 |
QueryText | 使用base64編碼的完整查詢。 |
EvaluationContext | 包含 artifactId (ie., semantic models 的 datasetid、 dataflowsId 等), 以及根據成品的其他追蹤標識符。 請注意,此欄位只會填入 Fabric、Power Platform、Azure Analysis Services 和 Azure Logic Apps 中特定連接器中支援的工作負載。 其中包括:語意模型、數據流 Gen2 和 Power Platform 數據流。 它也包含 Mashup 查詢、HTTP 和檔案 Azure 連接器的 Azure Logic Apps 工作負載。 值會根據所使用的工作負載,包含不同的追蹤標識符。 不支援 Power BI 和 Fabric 數據流 Gen 1 和 Power BI 編頁報表。 |
查詢執行匯總報表包含由 GatewayObjectId、DataSource、Success 和 QueryType 匯總至時間間隔的查詢資訊。 默認值為 5 分鐘,但您可以加以調整。 擷取下列屬性。
屬性 | 描述 |
---|---|
GatewayObjectId | 閘道的唯一標識碼。 |
AggregationStartTimeUTC | 匯總查詢屬性的時間範圍開始。 |
AggregationEndTimeUTC | 匯總查詢屬性的時間範圍結束。 |
DataSource | 包含數據源類型和數據來源。 |
「成功」 | 指出查詢是否成功或失敗。 |
AverageQueryExecutionDuration (ms) | 匯總時間範圍的平均查詢運行時間。 |
MaxQueryExecutionDuration (ms) | 匯總時間範圍的最大查詢運行時間。 |
MinQueryExecutionDuration (ms) | 匯總時間範圍的最低查詢運行時間。 |
QueryType | 查詢的類型。 例如,傳遞的查詢可能是 Power BI 重新整理或 DirectQuery。 或者,這可能是來自 Power Apps 和 Power Automate 的查詢。 |
AverageDataProcessingDuration (ms) | 匯總時間範圍的數據處理活動的平均時間,例如多任務緩衝處理、數據擷取、壓縮和數據處理。 |
MaxDataProcessingDuration (ms) | 匯總時間範圍的數據處理啟用時間上限,例如多任務緩衝處理、數據擷取、壓縮和數據處理。 |
MinDataProcessingDuration (ms) | 匯總時間範圍的數據處理啟用時間下限,例如多任務緩衝處理、數據擷取、壓縮和數據處理。 |
Count | 查詢數目。 |
係統計數器匯總報告包含匯總至時間間隔的系統計數器值。 默認值為 5 分鐘,但您可以加以調整。 擷取下列屬性。
屬性 | 描述 |
---|---|
GatewayObjectId | 閘道的唯一標識碼。 |
AggregationStartTimeUTC | 匯總之係統計數器的時間範圍開始。 |
AggregationEndTimeUTC | 匯總之係統計數器的時間範圍結束。 |
CounterName | 每個系統計數器都會套用到裝載網關節點的一部伺服器,並包括: • SystemCPUPercent:伺服器上使用的 CPU 佔可用 CPU 總數的百分比。 • SystemMEMUsedPercent:伺服器上的記憶體佔可用記憶體總數的百分比。 • GatewayCPUPercent:閘道進程在每個核心上所使用的 CPU 百分比總和。 若要取得伺服器上所使用的CPU百分比,請將GatewayCPUPercent除以核心數目。 • GatewayMEMKb:閘道進程所使用的總記憶體總記憶體總和。 |
Max | 匯總時間範圍之系統計數器的最大值。 |
Min | 匯總時間範圍之系統計數器的最小值。 |
平均 | 匯總時間範圍之系統計數器的平均值。 |
將閘道效能可視化
現在,您可以將記錄檔中的數據可視化。
下載閘道效能 PBI 範本,並使用 Power BI Desktop 加以開啟。
在開啟的對話框中,檢查資料夾路徑是否符合 ReportFilePath 中的值。
選取 [載入],範本檔案會開始從記錄檔載入數據。 所有視覺效果都會使用報表中的數據來填入。
或者,將此檔案儲存為 PBIX,並將其發佈至您的服務以進行自動重新整理。 若要深入瞭解,請移至 從 Power BI Desktop 發佈語意模型和報表。
您也可以自定義此範本檔案,以符合您的需求。 如需 Power BI 範本的詳細資訊,請移至此 Microsoft Power BI 部落格文章。
監視多任務緩衝記憶體
根據預設,網關的多任務緩衝記憶體位於 C:\Users\PBIEgwService\AppData\Local\Microsoft\On-premises data gateway\Spooler。 請務必監視此位置,以確保有足夠的可用磁碟空間。 詳細資訊: 閘道多任務緩衝處理數據
執行緩慢的查詢
長時間執行的查詢可能需要對數據源進行額外修改,或進一步優化查詢本身。 這可能是針對 Power BI 重新整理或直接資料庫查詢,例如 Power BI DirectQuery、Power Apps 或 Azure Logic Apps。
根據預設,閘道會執行基本記錄。 如果您要調查執行緩慢的查詢,除了使用效能監視功能之外,您還可以暫時啟用 其他記錄來收集其他記錄資訊,包括混搭引擎記錄 、查詢字串和詳細資訊層級追蹤。 這些記錄會寫入與一般閘道記錄相同的位置。 若要這樣做,請在內部部署數據網關應用程式中選取 [診斷>其他記錄]。
啟用此設定可能會根據閘道使用量大幅增加記錄大小。 建議您在完成檢閱停用其他記錄的記錄之後。 不建議在一般閘道使用期間啟用此設定。
透過串流資料將效能最佳化
根據預設,內部部署數據閘道會在將數據傳回語意模型之前,先進行多任務緩衝處理,這可能會導致數據載入和重新整理作業期間的效能變慢。 預設行為可以覆寫。
在 C:\Program Files\On-Premises 數據網關\Microsoft.PowerBI.DataMovement.Pipeline.GatewayCore.dll.config 檔案中,將 StreamBeforeRequestCompletes 設定設為 True,然後儲存。
<setting name="StreamBeforeRequestCompletes" serializeAs="String"> <value>True</value> </setting>
在內部部署的資料閘道>服務設定中,重新啟動閘道。
注意
啟用 StreamBeforeRequestCompletes 可能會在使用緩慢的數據源或具有不穩定/有限的網路連線時,造成查詢可靠性問題。
將特定資料夾從防毒掃描中排除,以將效能最佳化
為了避免潛在的效能影響,當您在安裝內部部署數據網關的伺服器中使用檔案層級防病毒軟體時,某些資料夾可以從防病毒軟體掃描中排除。 如果未排除這些資料夾,您可能會觀察到效能影響,以及潛在的其他非預期行為,因為這些資料夾會收到大量的寫入作業,而且位於內部部署數據網關的核心數據管線。
可能必須從內部部署數據閘道伺服器中的防毒掃描排除的資料夾
注意
下列位置持有者磁碟驅動器代表安裝內部部署數據閘道的驅動器號。 一般而言,驅動程式信件為 C。下列位置持有者 ServiceAccount 代表執行內部部署數據閘道的服務帳戶。 默認帳戶為 PBIEgwService。
- 記錄目錄: 磁碟驅動器:\Windows\ServiceProfiles\ ServiceAccount \AppData\Local\Microsoft\內部部署數據網關
- 多任務緩衝記憶體目錄: 磁盤驅動器:\Windows\ServiceProfiles\ ServiceAccount \AppData\Local\Microsoft\On-premises data gateway\Spooler