如何在 Azure 中使用 PerfInsights

PerfInsights 是一種自助診斷工具,可收集和分析診斷數據,並提供報告來協助針對 Azure 中的 Windows 虛擬機效能問題進行疑難解答。 PerfInsights 可以在虛擬機上以獨立工具形式執行,直接從入口網站使用 Azure 虛擬機的效能診斷,或安裝 Azure 效能診斷 VM 擴充功能

如果您遇到虛擬機的效能問題,請在連絡支持人員之前,執行此工具。

支援的疑難解答案例

PerfInsights 可以收集和分析數種資訊。 下列各節涵蓋常見案例。

注意事項

如需跨 Azure 虛擬機擴展集使用 PerfInsights 的相關信息,請移至 PerfInsights 和擴展集 VM 實例

快速效能分析

此案例會收集磁碟設定和其他重要資訊,包括:

  • 事件記錄

  • 所有連入和傳出連線的網路狀態

  • 網路和防火牆組態設定

  • 目前在系統上執行之所有應用程式的工作清單

  • 如果將 VM 識別為執行 SQL Server) 的伺服器,Microsoft 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
延遲 平均秒/數據要求
平均秒/讀取
平均秒/寫入
IO 大小 平均位元組/數據要求
平均位元組/讀取
平均位元組/寫入
輸送量 Data Bytes/sec
Read Bytes/sec
Write Bytes/sec
Queue Length 平均讀取佇列長度
平均寫入佇列長度
平均數據佇列長度

進階效能分析

當您執行進階效能分析時,您會選取要平行執行的追蹤。 如有需要,您可以將它們全部執行 (性能計數器、Xperf、Network 和 StorPort) 。

注意事項

此案例可能會影響系統,且不應該在即時生產系統上執行。 如有必要,請在專用維護期間執行此案例,以避免發生任何問題。 追蹤或效能評定測試導致的工作負載增加,可能會對 VM 的效能造成負面影響。

PerfInsights 會收集何種資訊?

收集 Windows VM、磁碟或存放集區設定、性能計數器、記錄和各種追蹤的相關信息。 這取決於您所使用的效能案例。 下表提供詳細資料:

收集的資料 快速效能分析 標杆 效能分析 Azure 檔案儲存體 分析 進階效能分析
來自事件記錄檔的資訊
系統資訊
磁碟區對應
磁碟對應
執行中的工作
記憶體可靠性計數器
儲存空間資訊
Fsutil 輸出
篩選驅動程序資訊
Netstat 輸出
網路設定
防火牆設定
SQL Server 設定
效能診斷追蹤 *
性能計數器追蹤 **
SMB 計數器追蹤 **
SQL Server 計數器追蹤 **
Xperf 追蹤
StorPort 追蹤
網路追蹤
Diskspd 基準檢驗追蹤 ‧

效能診斷追蹤 (*)

在背景執行規則型引擎,以收集數據並診斷進行中的效能問題。 規則會顯示在 [類別 -> 尋找] 索引標籤下的報表中。

每個規則都包含下列專案:

  • 尋找:尋找的描述。
  • 建議:建議您可針對尋找採取哪些動作。 還有參考連結 () 檔,其中包含有關尋找和/或建議的詳細資訊。
  • 影響層級:表示對效能造成影響的可能性。

目前支援下列規則類別:

  • 高資源使用量:
    • 高 CPU 使用量:偵測高 CPU 使用量期間,並顯示這些期間內最常使用的 CPU 使用量取用者。
    • 高記憶體使用量:偵測高記憶體使用量期間,並顯示這些期間記憶體使用量最高的取用者。
    • 高磁碟使用量:偵測實體磁碟上的高磁碟使用量期間,並顯示這些期間內最常使用的磁碟使用量取用者。
    • 高解析度磁碟使用量:顯示每個實體磁碟每 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\Segments、\TCPv6\Segments、\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 基準檢驗追蹤 ( )

Diskspd I/O 工作負載測試 (OS 磁碟 [寫入] 和集區磁碟驅動器 [讀取/寫入] )

在 VM 上執行 PerfInsights 工具

執行工具之前必須知道什麼?

工具需求

  • 此工具必須在發生效能問題的 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 必須授與每個實例的檢視伺服器狀態許可權和 Connect SQL 許可權,否則 PerfInsights 將無法連線到 SQL Server,而 PerfInsights 報告將不會顯示任何 SQL Server 相關資訊。

在生產 VM 上執行工具時可能發生的問題

  • 針對基準檢驗案例或設定為使用 Xperf 或 Diskspd 的「進階效能分析」案例,此工具可能會對 VM 的效能造成負面影響。 這些案例不應該在即時生產環境中執行。

  • 針對基準檢驗案例或設定為使用 Diskspd 的「進階效能分析」案例,請確定沒有其他背景活動會干擾 I/O 工作負載。

  • 根據預設,此工具會使用暫存存放磁碟驅動器來收集數據。 如果追蹤持續啟用較長的時間,則收集的數據量可能會相關。 這可能會降低暫存磁碟上的空間可用性,因此可能會影響依賴此磁碟驅動器的任何應用程式。

如何? 執行 PerfInsights?

您可以安裝 Azure 效能診斷 VM 擴充功能,在虛擬機上執行 PerfInsights。 您也可以將它當做獨立工具來執行。

從 Azure 入口網站 安裝和執行 PerfInsights

如需此選項的詳細資訊,請 參閱安裝 Azure 效能診斷 VM 擴充功能

在獨立模式中執行 PerfInsights

若要執行 PerfInsights 工具,請遵循下列步驟:

  1. 下載 PerfInsights.zip

  2. 解除封鎖 PerfInsights.zip 檔案。 若要這樣做,請以滑鼠右鍵按兩下 PerfInsights.zip 檔案,然後選取 [ 屬性]。 在 [ 一般] 索引標籤中,選取 [ 解除封鎖],然後選取 [ 確定]。 此動作可確保工具在沒有任何其他安全性提示的情況下執行。

    PerfInsights 屬性的螢幕快照,其中已醒目提示 [解除封鎖]。

  3. 根據預設,將壓縮 PerfInsights.zip 檔展開至暫存磁碟 (,這通常是 D 磁碟驅動器) 。

  4. 以系統管理員身分開啟 Windows 命令提示字元,然後執行 PerfInsights.exe 以檢視可用的命令行參數。

    cd <the path of PerfInsights folder>
    PerfInsights
    

    PerfInsights 命令行輸出的螢幕快照。

    執行 PerfInsights 案例的基本語法為:

    PerfInsights /run <ScenarioName> [AdditionalOptions]
    

    您可以使用下列範例來執行 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>
    

    您可以使用 /list 命令來查閱所有可用的案例和選項:

    PerfInsights /list
    

    注意事項

    執行案例之前,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 檔案。

選取 [ 結果] 索引 標籤。

PerfInsights 報表 [概觀] 索引卷標下 [結果] 索引卷標的螢幕快照。

[PerfInsights 報表] [記憶體] 索引卷標下 [結果] 索引卷標的螢幕快照。

注意事項

分類為高的結果是可能導致效能問題的已知問題。 分類為中型的結果代表不一定會造成效能問題的非最佳設定。 分類為低的結果只是資訊性語句。

檢閱所有高和中結果的建議和連結。 了解它們如何影響效能,以及效能優化組態的最佳做法。

記憶體索引標籤

[ 結果] 區段會顯示與記憶體相關的各種結果和建議。

碟對應磁碟區對 應區段說明邏輯磁碟區和實體磁碟彼此的關聯性。

在實體磁碟檢視方塊 (磁碟對應) 中,數據表會顯示磁碟上執行的所有邏輯磁碟區。 在下列範例中, PhysicalDrive2 會執行在多個分割區上建立的兩個邏輯磁碟區, (J 和 H) :

[PerfInsights 報告] 的 [結果] 索引卷標底下的 [磁盘對應] 區段螢幕快照。

在磁碟區檢視方塊 (磁碟區對應) 中,數據表會顯示每個邏輯磁碟區下的所有實體磁碟。 請注意,對於RAID/動態磁碟,您可能會在多個實體磁碟上執行邏輯磁碟區。 在下列範例中, C:\mount 是在實體磁碟 2 和 3 上設定為 SpannedDisk 的裝入點:

[PerfInsights 報告] 的 [結果] 索引卷標底下的磁碟區對應區段螢幕快照。

SQL 索引標籤

如果目標 VM 裝載任何 SQL Server 實體,您會在報表中看到名為 SQL 的另一個索引標籤

SQL 索引卷標及其下方子索引卷標的螢幕快照。

本節包含 [結果] 索引標籤,以及 VM 上裝載之每個 SQL Server 實例的額外索引標籤。

[ 結果] 索引標籤包含找到的所有 SQL 相關效能問題清單,以及建議。

在下列範例中,會顯示執行 C 磁碟驅動器) 的 PhysicalDrive0 (。 這是因為 modeldevmodellog 檔案都位於 C 磁碟驅動器上,而且它們的類型不同 (例如數據檔和事務歷史記錄,分別) 。

modeldev 和modellog檔案信息的螢幕快照。

特定實例的索引標籤 SQL Server 包含一般區段,其中顯示所選取實例的基本資訊。 索引標籤也包含更多區段以取得進階資訊,包括設定、組態和用戶選項。

診斷索引標籤

[ 診斷] 索引標籤包含執行 PerfInsights 期間電腦上最上層 CPU、磁碟和記憶體取用者的相關信息。 您也可以找到系統可能遺失的重要修補程式、工作清單和重要系統事件的相關信息。

所使用外部工具的參考

Diskspd

Diskspd 是 Microsoft 提供的記憶體負載產生器和效能測試工具。 如需詳細資訊,請參閱 Diskspd

Xperf

Xperf 是從 Windows Performance Toolkit 擷取追蹤的命令行工具。 如需詳細資訊,請參閱 Windows Performance Toolkit – Xperf

後續步驟

您可以將診斷記錄和報告上傳至 Microsoft 支援服務 以供進一步檢閱。 支持人員可能會要求您傳輸 PerfInsights 所產生的輸出,以協助進行疑難解答程式。

下列螢幕快照顯示類似您可能收到的訊息:

來自 Microsoft 支援服務 的範例訊息螢幕快照。

請遵循訊息中的指示來存取檔傳輸工作區。 為了獲得額外的安全性,您必須在第一次使用時變更密碼。

登入之後,您會找到一個對話框來上傳 PerfInsights 所收集 的PerformanceDiagnostics_yyyy-MM-dd_hh-mm-ss-fff.zip 檔案。

與我們連絡,以取得說明

如果您有問題或需要相關協助,請建立支援要求,或詢問 Azure community 支援。 您也可以將產品意見反應提交給 Azure 意應見反社群