使用效能診斷針對 Windows 虛擬機效能問題進行疑難解答 (PerfInsights) CLI 工具
適用於:✔️ Windows VM
效能診斷 (PerfInsights) 延伸模組是一種自助診斷工具,可收集和分析診斷數據,並提供報告來協助針對 Azure 中的 Windows 虛擬機 (VM) 效能問題進行疑難解答。 使用效能診斷,以下列兩種模式之一找出效能問題並進行疑難解答:
- 連續診斷 (預覽) 會以五秒間隔收集數據,並每隔五分鐘報告一次關於高資源使用量的可操作見解。
- 隨選診斷 可協助您根據在單一時間點收集的數據,針對持續效能問題進行疑難解答,並提供更深入的數據、深入解析和建議。
本文說明如何將效能診斷擴充功能下載到您的 Windows VM,並使用 CLI 工具執行此工具。 您也可以 從入口網站執行效能診斷,並使用 ARM範本或PowerShell部署效能診斷擴充功能。
如果您在連絡支持人員之前遇到虛擬機的效能問題,請執行效能診斷。
支援的疑難解答案例
您可以使用效能診斷來針對各種案例進行疑難解答。 下列各節說明使用持續和隨選效能診斷來識別和疑難解答效能問題的常見案例。 如需連續和隨選效能診斷的比較,請參閱 效能診斷深入解析和報告
注意
如需跨 Azure 虛擬機擴展集使用 PerfInsights 的相關信息,請參閱 PerfInsights 和擴展集 VM 實例。
連續診斷
持續效能診斷可讓您定期監視 VM,以識別高資源使用量:
- 高 CPU 使用量:偵測高 CPU 使用量期間,並顯示這些期間最高的 CPU 使用量取用者。
- 高記憶體使用量:偵測高記憶體使用量期間,並顯示這些期間記憶體使用量最高的取用者。
- 高磁碟使用量:偵測實體磁碟上的高磁碟使用量週期,並在這些期間顯示磁碟使用量最高的取用者。
隨選診斷
快速分析
此案例會收集磁碟設定和其他重要資訊,包括:
事件記錄檔
所有連入和連出連線的網路狀態
網路和防火牆組態設定
目前在系統上執行之所有應用程式的工作清單
Microsoft SQL Server 資料庫組態設定(如果 VM 識別為執行 SQL Server 的伺服器)
記憶體可靠性計數器
重要 Windows Hotfix
已安裝的篩選驅動程式
這是不應該影響系統的被動資訊集合。
注意
此案例會自動包含在下列每個案例中。
效能評定
此案例會針對連結至 VM 的所有磁碟驅動器執行 Diskspd 基準檢驗 (IOPS 和 MBPS)。
注意
此案例可能會影響系統,而且不應該在即時生產系統上執行。 如有必要,請在專用維護期間執行此案例,以避免任何問題。 追蹤或基準檢驗所造成的工作負載增加,可能會對 VM 的效能造成負面影響。
效能分析
此案例 會使用 RuleEngineConfig.json 檔案中指定的計數器執行性能計數器 追蹤。 如果 VM 識別為執行 SQL Server 的伺服器,則會執行性能計數器追蹤。 其方式是使用在 RuleEngineConfig.json 檔案中找到的計數器。 此案例也包含效能診斷數據。
Azure 檔案儲存體 分析
此案例會與網路追蹤一起執行特殊的性能計數器擷取。 擷取包含所有伺服器消息塊 (SMB) 用戶端共用計數器。 以下是屬於擷取一部分的重要SMB用戶端共用性能計數器:
類型 | SMB 用戶端共享計數器 |
---|---|
IOPS | Data Requests/sec |
Read Requests/sec | |
Write Requests/sec | |
延遲 | Avg. sec/Data Request |
Avg. sec/Read | |
Avg. sec/Write | |
IO 大小 | 平均位元組/數據要求 |
平均Bytes/Read | |
平均Bytes/Write | |
輸送量 | Data Bytes/sec |
Read Bytes/sec | |
Write Bytes/sec | |
佇列長度 | 平均讀取佇列長度 |
平均寫入佇列長度 | |
平均數據佇列長度 |
進階效能分析
當您執行進階效能分析時,您可以選取要平行執行的追蹤。 如有需要,您可以全部執行它們(性能計數器、Xperf、網路和 StorPort)。
注意
此案例可能會影響系統,而且不應該在即時生產系統上執行。 如有必要,請在專用維護期間執行此案例,以避免任何問題。 追蹤或基準檢驗所造成的工作負載增加,可能會對 VM 的效能造成負面影響。
Windows 中的效能診斷會收集哪些資訊?
收集 Windows VM、磁碟或存放集區組態、性能計數器、記錄和各種追蹤的相關信息。 這取決於您使用的效能案例。 下列表格提供詳細資料:
收集的資料 | 快速效能分析 | 效能評定 | 效能分析 | Azure 檔案儲存體 分析 | 進階效能分析 |
---|---|---|---|---|---|
事件記錄檔中的資訊 | Yes | .是 | .是 | .是 | Yes |
系統資訊 | Yes | .是 | .是 | .是 | Yes |
磁碟區對應 | Yes | .是 | .是 | .是 | Yes |
磁碟對應 | Yes | .是 | .是 | .是 | Yes |
正在執行的工作 | Yes | .是 | .是 | .是 | Yes |
記憶體可靠性計數器 | Yes | .是 | .是 | .是 | Yes |
儲存空間資訊 | Yes | .是 | .是 | .是 | Yes |
Fsutil 輸出 | Yes | .是 | .是 | .是 | Yes |
篩選驅動程序資訊 | Yes | .是 | .是 | .是 | Yes |
Netstat 輸出 | Yes | .是 | .是 | .是 | Yes |
網路組態 | Yes | .是 | .是 | .是 | Yes |
防火牆設定 | Yes | .是 | .是 | .是 | Yes |
SQL Server 設定 | Yes | .是 | .是 | .是 | Yes |
效能診斷追蹤 * | Yes | .是 | .是 | .是 | Yes |
性能計數器追蹤 ** | Yes | Yes | |||
SMB 計數器追蹤 ** | 是 | ||||
SQL Server 計數器追蹤 ** | Yes | Yes | |||
Xperf 追蹤 | 是 | ||||
StorPort 追蹤 | 是 | ||||
網路追蹤 | Yes | Yes | |||
Diskspd 基準檢驗追蹤 ** | 是 | ||||
效能診斷追蹤 \
在背景中執行以規則為基礎的引擎,以收集數據並診斷進行中的效能問題。 規則會顯示在報表的 [類別 -> 尋找] 索引標籤底下。
每個規則都包含下列專案:
- 尋找:尋找的描述。
- 建議:建議針對尋找採取哪些動作。 另外還有文件參考連結,其中包含有關尋找和/或建議的詳細資訊。
- 影響層級:代表對效能造成影響的可能性。
目前支援下列規則類別:
- 高資源使用量:
- 高 CPU 使用量:偵測高 CPU 使用量期間,並顯示這些期間最高的 CPU 使用量取用者。
- 高記憶體使用量:偵測高記憶體使用量期間,並顯示這些期間記憶體使用量最高的取用者。
- 高磁碟使用量:偵測實體磁碟上的高磁碟使用量週期,並在這些期間顯示磁碟使用量最高的取用者。
- 高解析度磁碟使用量:顯示每個實體磁碟每 50 毫秒 50 毫秒的 IOPS、輸送量和 I/O 延遲計量。 這有助於快速識別磁碟節流期間。
- 知識庫:偵測是否已安裝特定的知識庫 (KB) 文章。
- 磁碟:偵測特定的磁碟組態設定。
- SQL:偵測特定的 SQL 設定。
- 網路:偵測特定網路設定。
- 伺服器叢集:偵測特定的伺服器叢集組態設定。
- 系統:偵測特定的系統組態設定。
- CLR:偵測Managed進程上長時間的垃圾收集暫停。
注意
目前支援包含 .NET Framework 4.5 或更新版本的 Windows 版本。
效能計數器追蹤 (**)
收集下列效能計數器:
- \System、\Process、\Processor、\Memory、\Thread、\PhysicalDisk 和 \LogicalDisk
- \Cache\Dirty Pages、\Cache\Lazy Write Flushes/sec、\Server\Pool Nonpaged、Failures 和 \Server\Pool Paged Failures
- 在 \Network Interface、\IPv4\Datagrams、\IPv6\Datagrams 底下選取的計數器, \TCPv4\Segment、\TCPv6\Segment、\Network Adapter、\WFPv4\Packets、\WFPv6\Packets、\UDPv4\Datagrams、\UDPv6\Datagrams、\TCPv4\Connection、\TCPv6\Connection、\Network QoS Policy\Packets、\Per Processor Network Interface Card Activity 和 \Microsoft Winsock BSP
針對 SQL Server 實例
- \SQL Server:Buffer Manager、\SQLServer:Resource Pool Stats 和 \SQLServer:SQL Statistics\
- \SQLServer:Locks、\SQLServer:General、Statistics
- \SQLServer:Access 方法
針對 Azure 檔案儲存體
\SMB 用戶端共用
Diskspd 基準檢驗追蹤 (***)
Diskpd I/O 工作負載測試 (OS 磁碟 [寫入] 和集區磁碟驅動器 [讀取/寫入])
使用 CLI 工具在 VM 上執行效能診斷
執行此工具之前,我必須知道什麼?
工具需求
此工具必須在有效能問題的 VM 上執行。
以下為支援的作業系統:
- Windows Server 2022
- Windows Server 2019
- Windows Server 2016
- Windows Server 2012 R2
- Windows Server 2012
- Windows 11
- Windows 10
存取 SQL Server
如果 VM 已安裝 SQL Server 實例,PerfInsights 會使用 NT AUTHORITY\SYSTEM 帳戶來存取 SQL Server 實例,以收集組態資訊和執行規則。 帳戶 NT AUTHORITY\SYSTEM 必須授與檢視伺服器狀態許可權,併為每個實例連接 SQL 許可權,否則 PerfInsights 將無法連線到 SQL Server,而 PerfInsights 報表不會顯示任何 SQL Server 相關信息。
當您在生產 VM 上執行此工具時可能發生的問題
針對已設定為使用 Xperf 或 Diskspd 的效能評定案例或「進階效能分析」案例,此工具可能會對 VM 的效能產生負面影響。 這些案例不應該在即時生產環境中執行。
針對已設定為使用 Diskspd 的基準檢驗案例或「進階效能分析」案例,請確定沒有任何其他背景活動干擾 I/O 工作負載。
根據預設,此工具會使用暫存磁碟驅動器來收集數據。 如果追蹤持續啟用較長的時間,所收集的數據量可能會相關。 這可以減少暫存磁碟上空間的可用性,因此可能會影響任何依賴此磁碟驅動器的應用程式。
如何? 執行 PerfInsights 嗎?
您可以藉由安裝 Azure 效能診斷 VM 擴充功能,在虛擬機上執行 PerfInsights。 您也可以將它當作獨立工具執行。
從 Azure 入口網站 安裝和執行 PerfInsights
如需此選項的詳細資訊,請參閱 安裝 Azure 效能診斷 VM 擴充功能。
在獨立模式中執行 PerfInsights
若要執行 PerfInsights 工具,請遵循下列步驟:
下載 PerfInsights.zip。
解除封鎖PerfInsights.zip檔案。 若要這樣做,請以滑鼠右鍵按兩下PerfInsights.zip檔案,然後選取 [ 屬性]。 在 [一般] 索引標籤中,選取 [解除封鎖],然後選取 [確定]。 此動作可確保工具在沒有任何其他安全性提示的情況下執行。
將壓縮PerfInsights.zip檔案展開到您的暫存磁碟驅動器(根據預設,這通常是 D 磁碟驅動器)。
以系統管理員身分開啟 Windows 命令提示字元,然後執行PerfInsights.exe來檢視可用的命令行參數。
cd <the path of PerfInsights folder> PerfInsights
執行 PerfInsights 案例的基本語法如下:
PerfInsights /run <ScenarioName> [AdditionalOptions]
使用 /list 命令查閱所有可用的案例和選項:
PerfInsights /list
以下是如何使用 CLI 工具來執行各種 疑難解答案例的範例:
執行持續效能診斷:
PerfInsights /run always on /sau
若要停止持續效能診斷,請按 Ctrl+C 或關閉終端機。
執行效能分析案例 5 分鐘:
PerfInsights /run vmslow /d 300 /AcceptDisclaimerAndShareDiagnostics
使用 Xperf 和效能計數器追蹤執行進階案例 5 分鐘:
PerfInsights /run advanced xp /d 300 /AcceptDisclaimerAndShareDiagnostics
執行基準檢驗案例 5 分鐘:
PerfInsights /run benchmark /d 300 /AcceptDisclaimerAndShareDiagnostics
執行效能分析案例 5 分鐘,並將結果 zip 檔案上傳至記憶體帳戶:
PerfInsights /run vmslow /d 300 /AcceptDisclaimerAndShareDiagnostics /sa <StorageAccountName> /sk <StorageAccountKey>
注意
在執行案例之前,PerfInsights 會提示使用者同意共用診斷資訊,並同意 EULA。 使用 /AcceptDisclaimerAndShareDiagnostics 選項來略過這些提示。
如果您有使用中支援票證,且Microsoft並執行 PerfInsights,請根據您正在使用的支持工程師的要求,請務必使用 /sr 選項來提供支援票證號碼。
根據預設,PerfInsights 會嘗試在可用時自行更新為最新版本。 使用 /SkipAutoUpdate 或 /sau 參數來略過自動更新。
如果未指定持續時間參數 /d,PerfInsights 將會提示您在執行 vmslow、azurefiles 和進階案例時重新提出問題。
當追蹤或作業完成時,新檔案會出現在與 PerfInsights 相同的資料夾中。 檔案的名稱是 PerformanceDiagnostics_yyyy-MM-dd_hh-mm-ss-fff.zip。 您可以將此檔案傳送給支援代理程序進行分析,或開啟 zip 檔案內的報表,以檢閱結果和建議。
檢閱診斷報告
在PerformanceDiagnostics_yyyy-MM-dd_hh-mm-ss-fff.zip檔案中,您可以找到一份 HTML 報表,詳細說明 PerfInsights 的結果。 若要檢閱報告,請展開 PerformanceDiagnostics_yyyy-MM-dd_hh-mm-ss-fff.zip 檔案,然後開啟 PerfInsights Report.html 檔案。
選取 [ 結果] 索引標籤 。
注意
分類為高的結果是可能導致效能問題的已知問題。 分類為中型的結果代表不一定會導致效能問題的非最佳設定。 分類為低的結果只是資訊性陳述。
檢閱所有高中結果的建議和連結。 了解它們如何影響效能,以及效能優化設定的最佳做法。
[儲存體] 索引標籤
[結果] 區段會顯示與記憶體相關的各種結果和建議。
[磁碟對應] 和 [磁碟區對應] 區段描述邏輯磁碟區和實體磁碟彼此的關聯性。
在實體磁碟檢視方塊中(磁碟對應),數據表會顯示在磁碟上執行的所有邏輯磁碟區。 在下列範例中, PhysicalDrive2 會執行兩個在多個分割區上建立的邏輯磁碟區(J 和 H):
在磁碟區檢視方塊中(磁碟區對應),數據表會顯示每個邏輯磁碟區下的所有實體磁碟。 請注意,針對RAID/動態磁碟,您可能會在多個實體磁碟上執行邏輯磁碟區。 在下列範例中, C:\mount 是在實體磁碟 2 和 3 上設定為 SpannedDisk 的裝入點:
SQL 索引標籤
如果目標 VM 裝載任何 SQL Server 實例,您會在報表 中看到另一個名為 SQL 的索引標籤:
本節包含 [ 尋找] 索引標籤,以及 VM 上裝載之每個 SQL Server 實例的額外索引標籤。
[尋找] 索引標籤包含找到的所有 SQL 相關效能問題清單,以及建議。
在下列範例中, 會顯示 PhysicalDrive0 (執行 C 磁碟驅動器)。 這是因為 modeldev 和 modellog 檔案都位於 C 磁碟驅動器上,而且它們分別屬於不同類型的 (例如數據檔和事務歷史記錄)。
SQL Server 特定實例的索引標籤包含一般區段,其中顯示所選實例的基本資訊。 索引標籤也包含更多進階資訊的區段,包括設定、組態和用戶選項。
[診斷] 索引標籤
[診斷] 索引標籤包含效能診斷執行期間計算機上最高 CPU、磁碟和記憶體取用者的相關信息。 您也可以找到系統可能遺漏的重要修補程式、工作清單和重要系統事件的相關信息。
使用之外部工具的參考
Diskspd
Diskspd 是來自 Microsoft 的記憶體負載產生器和效能測試工具。 如需詳細資訊,請參閱 Diskspd。
Xperf
Xperf 是命令行工具,可從 Windows Performance Toolkit 擷取追蹤。 如需詳細資訊,請參閱 Windows Performance Toolkit – Xperf。
下一步
您可以將診斷記錄和報告上傳至 Microsoft 支援服務,以進一步檢閱。 支持人員可能會要求您傳輸 PerfInsights 所產生的輸出,以協助進行疑難解答程式。
下列螢幕快照顯示類似您可能會收到的訊息:
請遵循訊息中的指示來存取檔傳輸工作區。 為了獲得額外的安全性,您必須在第一次使用時變更密碼。
登入之後,您會發現一個對話框,以上傳 PerfInsights 收集的 PerformanceDiagnostics_yyyy-MM-dd_hh-mm-ss-fff.zip檔案。
與我們連絡,以取得說明
如果您有問題或需要相關協助,請建立支援要求,或詢問 Azure community 支援。 您也可以向 Azure 意見反應社群提交產品意見反應。