Share via


如何使用 PerfInsights

注意事項

本文中參考的 CentOS 是 Linux 發行版,並會到達生命周期結束 (EOL) 。 請考慮您的使用並據以規劃。 如需詳細資訊,請 參閱 CentOS 生命週期結束指引

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

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

支援的疑難解答案例

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

快速效能分析

此案例會收集基本資訊,例如虛擬機的記憶體和硬體組態、各種記錄,包括:

  • 操作系統資訊

  • PCI 裝置資訊

  • 一般客體OS記錄

  • 設定檔案

  • 儲存空間資訊

  • 使用 Azure 實例元數據服務收集的 Azure 虛擬機設定 (

  • 執行中進程、磁碟、記憶體和CPU使用量的清單

  • 網路資訊

這是不應影響系統的被動資訊集合。

注意事項

快速效能分析案例會自動包含在下列每個案例中:

效能分析

此案例類似於快速效能分析,但允許在較長的持續時間內擷取診斷資訊。

HPC 效能分析

此案例適用於針對 HPC 大小 VM 的問題進行疑難解答,這表示 H 系列和 N 系列。 它會根據 Azure HPC Platform 小組已測試和建議的內容來檢查 VM 設定。 它也會收集與這些 VM 上可用的特殊硬體狀態和組態相關的記錄和診斷,包括:

  • GPU 驅動程式資訊

  • GPU 硬體診斷

  • InfiniBand 驅動程式資訊和設定

  • InfiniBand 裝置診斷

  • 網路組態檔

  • 效能微調資訊

注意事項

HPC 效能分析案例所使用的某些工具,例如使用設備驅動器封裝的 cli 命令,並不存在於所有 VM 上。 在這種情況下,將會略過分析的那些部分。 執行此案例不會在 VM 上安裝任何軟體,也不會進行任何其他永久變更。

注意事項

目前不支援直接從 Azure 入口網站執行 HPC 案例,因此必須從命令行下載並執行 PerfInsights 才能使用它。

PerfInsights 會收集何種資訊

收集 Linux 虛擬機、操作系統、封鎖裝置、高資源取用者、設定和各種記錄的相關信息。 以下是更多詳細資料:

  • 作業系統

    • Linux 發行版和版本
    • 核心資訊
    • 驅動程序資訊
    • Azure HPC Driver VM 擴充功能記錄*
    • SELinux 設定*
  • 硬體

    • PCI 裝置 [*]
    • lscpu 的輸出*
    • 系統管理 BIOS 數據表傾印*
  • 進程和記憶體

    • 工作名稱 (處理程式清單、使用的記憶體、開啟的檔案)
    • 總計、可用和可用的物理記憶體
    • 總計、可用和可用的交換記憶體
    • 以 5 秒間隔擷取 CPU 和處理 CPU 使用量的程式代碼剖析
    • 以 5 秒間隔分析進程記憶體使用量的擷取
    • 記憶體存取的使用者限制*
    • NUMA 組態*
  • Gpu

    • Nvidia SMI 輸出*
    • Nvidia DCGM 診斷*
    • Nvidia 偵錯傾印*
  • 網路

    • 具有適配卡統計數據的網路適配器清單
    • 網路路由表
    • 開啟的埠和狀態
    • InfiniBand 分割區索引鍵*
    • ibstat 的輸出*
  • 儲存體

    • 封鎖裝置清單
    • 數據分割清單
    • 載入點清單
    • MDADM 磁碟區資訊
    • LVM 磁碟區資訊
    • 每隔 5 秒在所有磁碟上進行分析擷取
  • 記錄檔

    • /var/log/messages
    • /var/log/syslog
    • /var/log/kern.log
    • /var/log/cron.log
    • /var/log/boot.log
    • /var/log/yum.log
    • /var/log/dpkg.log
    • /var/log/sysstat 或 /var/log/sa [**]
    • /var/log/cloud-init.log
    • /var/log/cloud-init-output.log
    • /var/log/gpu-manager.log
    • /var/log/waagent.log
    • /var/log/azure/[extension folder]/*log*
    • /var/opt/microsoft/omsconfig/omsconfig.log
    • /var/opt/microsoft/omsagent/log/omsagent.log
    • /etc/waagent.config
    • 過去五天的日誌輸出
  • Azure 虛擬機實例元數據

* 僅在 HPC 案例中

效能診斷追蹤

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

每個規則都包含下列各項:

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

目前支援下列規則類別:

  • 高資源使用量:

    • 高 CPU 使用量:偵測高 CPU 使用量期間,並顯示這些期間內最常使用的 CPU 使用量取用者。
    • 高記憶體使用量:偵測高記憶體使用量期間,並顯示這些期間記憶體使用量最高的取用者。
    • 高磁碟使用量:偵測實體磁碟上的高磁碟使用量期間,並顯示這些期間內最常使用的磁碟使用量取用者。
  • 記憶體:偵測特定的記憶體組態。

  • 記憶體:偵測特定的記憶體組態。

  • GPU:偵測特定的 GPU 組態。

  • 網路:偵測特定的網路設定。

  • 系統:偵測特定的系統設定。

注意事項

[*] 尚未在 Debian 和 SLES 散發套件上收集 PCI 資訊。

[**] /var/log/sysstat 或 /var/log/sa 包含 Sysstat 套件所收集的系統活動報告 (SAR) 檔案。 如果 Sysstat 套件未安裝在 VM 上,PerfInsights 工具會提供安裝它的建議。

在 VM 上執行 PerfInsights Linux

執行工具之前必須知道的事項

工具需求

  • 此工具必須在發生效能問題的 VM 上執行。

  • Python 3.6 或更新版本必須安裝在 VM 上。

    注意事項

    Python Software Foundation (PSF) 不再支援 Python 2。 如果 VM 上已安裝 Python 2.7,則可以安裝 PerfInsights。 不過,PerfInsights 不會進行任何變更或錯誤修正,以支援 Python 2.7。 如需詳細資訊,請參閱 日落 Python 2

  • 目前支援下列散發套件:

    注意事項

    Microsoft 只測試了數據表中列出的版本。 如果版本未列在數據表中,則 Microsoft 不會明確測試該版本,但版本仍可運作。

    分佈 版本
    Oracle Linux 伺服器 6.10 [*], 7.3, 7.5, 7.6, 7.7, 7.8, 7.9
    Centos 6.5 [*], 7.6, 7.7, 7.8, 7.9
    RHEL 7.2、7.5、8.0 [*]、8.1、8.2、8.6、8.8
    Ubuntu 14.04, 16.04, 18.04, 20.04, 22.04
    Debian 8, 9, 10, 11 [*]
    Sles 12 SP4 [*], 12 SP5 [*], 15 [*], 15 SP1 [*], 15 SP2 [*], 15 SP4 [*]
    AlmaLinux 8.4, 8.5
    Azure Linux 2.0

注意事項

[*] 請參閱 已知問題 一節

注意事項

[*] HPC 案例依賴 HPCDiag 工具,因此請檢查其支援 VM 大小和 OS 的支援矩陣。 特別是,尚未支援 NDv4 大小的 VM,而這些 VM 的報告可能會顯示無關的結果。

已知問題

  • RHEL 8 預設不會安裝 Python。 若要執行 PerfInsights Linux,您必須先安裝 Python 3.6 或更新版本。

  • 在 CentOS 6.x 上,客體代理程式資訊收集可能會失敗。

  • PCI 裝置資訊不會在以 Debian 為基礎的散發套件上收集。

  • 部分收集到某些散發套件的 LVM 資訊。

如何? 執行 PerfInsights

您可以從 Azure 入口網站 安裝 Azure 效能診斷,在虛擬機上執行 PerfInsights。 您也可以將它當做獨立工具來執行。

注意事項

PerfInsights 只會收集和分析數據。 它不會對系統進行任何修改。

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

如需此選項的詳細資訊,請參閱 Azure 效能診斷

在獨立模式中執行 PerfInsights

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

  1. 下載 PerfInsights.tar.gz 至虛擬機上的資料夾,並使用下列命令從終端機擷取內容。

    wget https://download.microsoft.com/download/9/F/8/9F80419C-D60D-45F1-8A98-718855F25722/PerfInsights.tar.gz
    
    tar xzvf PerfInsights.tar.gz
    
  2. 流覽至包含 perfinsights.py 檔案的資料夾,然後執行 perfinsights.py 以檢視可用的命令行參數。

    cd <the path of PerfInsights folder>
    sudo python perfinsights.py
    

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

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

    sudo python perfinsights.py -r <ScenarioName> -d [duration]<H | M | S> [AdditionalOptions]
    

    您可以使用下列範例執行 1 分鐘的快速效能分析案例,並在 /tmp/output 資料夾下建立結果:

    sudo python perfinsights.py -r quick -d 1M -a -o /tmp/output
    

    您可以使用下列範例執行 5 分鐘的效能分析案例,並將結果 (儲存在 TAR 檔案中) 上傳至記憶體帳戶:

    sudo python perfinsights.py -r vmslow -d 300S -a -t <StorageAccountName> -k <StorageAccountKey> -i <full resource Uri of the current VM>
    

    您可以使用下列範例來執行 HPC 效能分析案例 1 分鐘,並將結果 TAR 檔案上傳至記憶體帳戶:

    sudo python perfinsights.py -r hpc -d 60S -a -t <StorageAccountName> -k <StorageAccountKey> -i <full resource Uri of the current VM>
    

    注意事項

    執行案例之前,PerfInsights 會提示使用者同意共用診斷資訊,並同意 EULA。 使用 -a 或 --accept-disclaimer-and-share-diagnostics 選項來略過這些提示。

    如果您有 Microsoft 的作用中支援票證,並根據您正在使用的支持工程師要求執行 PerfInsights,請務必使用 -s 或 --support-request 選項提供支援票證號碼。

執行完成時,除非未指定任何輸出資料夾,否則新的 tar 檔案會出現在與 PerfInsights 相同的資料夾中。 檔名是 PerformanceDiagnostics_yyyy-MM-dd_hh-mm-ss-fff.tar.gz。 您可以將此檔案傳送至支援代理程式進行分析,或在檔案內開啟報表,以檢閱結果和建議。

檢閱診斷報告

PerformanceDiagnostics_yyyy-MM-dd_hh-mm-ss-fff.tar.gz 檔案中,您可以找到 HTML 報告,其中詳細說明 PerfInsights 的結果。 若要檢閱報表,請展開 PerformanceDiagnostics_yyyy-MM-dd_hh-mm-ss-fff.tar.gz 檔案,然後開啟 PerfInsights Report.html 檔案。

概觀索引標籤

[ 概觀] 索引 標籤提供基本的執行詳細數據和虛擬機資訊。 [ 結果] 索引標籤會顯示來自 PerfInsights 報告所有不同區段的建議摘要。

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

PerfInsights 報表 [結果] 索引標籤的螢幕快照。

注意事項

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

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

CPU 索引標籤

[CPU] 索 引標籤提供 PerfInsights 執行期間全系統 CPU 耗用量的相關信息。 高 CPU 使用量期間和最常執行的 CPU 取用者相關信息,有助於針對高 CPU 相關問題進行疑難解答。

[PerfInsights 報表 CPU] 索引卷標的螢幕快照。

GPU 索引標籤

GPU 索 引標籤提供有關結果的資訊,有助於針對 GPU 相關問題進行疑難解答。

[PerfInsights 報表 GPU] 索引卷標的螢幕快照。

[網络] 索引標籤

[網络] 索 引標籤提供網路設定和狀態的相關信息。 如需有關網路相關結果的資訊,包括 HPC 案例中的 InfiniBand 問題,請參閱這裡。

[網络] 索引標籤的螢幕快照。

記憶體索引標籤

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

[ 封鎖裝置 ] 和其他相關區段,例如 [分割區]、 [LVM] 和 [ MDADM ] 索引卷標,會說明如何設定區塊裝置並彼此相關。

[記憶體] 索引標籤的螢幕快照。

MDADM 索引標籤的螢幕快照。

Linux 索引標籤

[Linux] 索引標籤包含在 VM 中執行之硬體和作業系統的相關信息。 詳細數據包括執行中進程的清單,以及客體代理程式、PCI、CPU、GPU、驅動程式和 LIS 驅動程式的相關信息。

Linux 索引標籤和詳細數據的螢幕快照。

或在已啟用 GPU 的 VM 上:

[Linux] 索引標籤下 [GPU] 索引卷標的螢幕快照和詳細數據。

後續步驟

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

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

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

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

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

與我們連絡,以取得說明

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