共用方式為


針對效能診斷的Linux虛擬機效能問題進行疑難解答 (PerfInsights)

適用於:✔️ Linux VM

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

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

注意

持續診斷(預覽版) 目前僅支援 Windows。

支援的疑難解答案例

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 數據表傾印*
  • 進程和記憶體

    • 行程清單(工作名稱、使用的記憶體、開啟的檔案)
    • 總計、可用和可用物理記憶體
    • 總計、可用和可用交換記憶體
    • 分析擷取 CPU,並以 5 秒間隔處理 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
    • 過去五天的 journalctl 輸出
  • Azure 虛擬機實例元數據

* 僅在 HPC 案例中

效能診斷追蹤

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

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

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

目前支援下列規則類別:

  • 高資源使用量:

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

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

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

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

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

注意

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

[**] /var/log/sysstat 或 /var/log/sa 包含 sysstat 套件所收集的系統活動報告 (SAR) 檔案。 如果 VM 上未安裝 sysstat 套件,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 Server 6.10 [*], 7.3, 7.5, 7.6, 7.7, 7.8, 7.9
    RHEL 7.4、7.5、7.6、7.7、7.8、7.9、8.0 [*]、8.1、8.2、8.4、8.5、8.6、8.7、8.8、8.9
    Ubuntu 16.04, 18.04, 20.04, 22.04
    Debian 9, 10, 11 [*]
    SLES 12 SP5 [], 15 SP1 [**], 15 SP2 [*], 15 SP3 [*], 15 SP4 [*], 15 SP5 [*], 15 SP6 [*]
    AlmaLinux 8.4, 8.5
    Azure Linux 2.0

注意

[*] 請參閱 已知問題 區段

注意

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

已知問題

  • RHEL 8 預設不會安裝 Python,因為 Python 2 和 Python 3.6 皆可使用。 若要安裝 Python 3.6,請執行 yum install python3 命令。

  • 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 問題,請參閱這裡。

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

[儲存體] 索引標籤

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

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

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

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 意見反應社群提交產品意見反應。