針對效能診斷的Linux虛擬機效能問題進行疑難解答 (PerfInsights)
適用於:✔️ Linux VM
注意
本文所參考的 CentOS 是一種 Linux 發行版,且將到達生命周期結束(EOL)。 請據以考慮您的使用和規劃。 如需詳細資訊,請參閱 CentOS 生命週期結束指引。
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 數據表傾印
*
- PCI 裝置 [
進程和記憶體
- 行程清單(工作名稱、使用的記憶體、開啟的檔案)
- 總計、可用和可用物理記憶體
- 總計、可用和可用交換記憶體
- 分析擷取 CPU,並以 5 秒間隔處理 CPU 使用量
- 以 5 秒間隔分析擷取進程記憶體使用量
- 記憶體存取的使用者限制
*
- NUMA 組態
*
GPU
- Nvidia SMI 輸出
*
- Nvidia DCGM 診斷
*
- Nvidia 偵錯傾印
*
- Nvidia SMI 輸出
網路
- 具有配接器統計數據的網路適配器清單
- 網路路由表
- 已開啟的埠和狀態
- 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 輸出
*
僅在 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明確測試版本,但版本可能仍可運作。
Distribution 版本 Oracle Linux Server 6.10 [ *
], 7.3, 7.5, 7.6, 7.7, 7.8, 7.9CentOS 6.5 [ *
], 7.6, 7.7, 7.8, 7.9RHEL 7.2、7.5、8.0 [ *
]、8.1、8.2、8.6、8.8Ubuntu 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 工具,請遵循下列步驟:
將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
流覽至包含
perfinsights.py
檔案的資料夾,然後執行perfinsights.py
以檢視可用的命令行參數。cd <the path of PerfInsights folder> sudo python perfinsights.py
執行 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 報表中所有不同區段的建議摘要。
注意
分類為高的結果是可能導致效能問題的已知問題。 分類為中型的結果代表不一定會導致效能問題的非最佳設定。 分類為低的結果只是資訊性陳述。
檢閱所有高中結果的建議和連結。 了解它們如何影響效能,以及效能優化設定的最佳做法。
CPU 索引標籤
[CPU] 索引標籤提供 PerfInsights 執行期間全系統 CPU 耗用量的相關信息。 高 CPU 使用量週期和長時間執行 CPU 取用者的相關信息,有助於針對高 CPU 相關問題進行疑難解答。
GPU 索引標籤
[GPU ] 索引標籤提供有關針對 GPU 相關問題進行疑難解答之結果的相關信息。
網路索引標籤
[網络 ] 索引標籤提供網路組態和狀態的相關信息。 如需有關網路相關結果的資訊,包括 HPC 案例中的 InfiniBand 問題,請參閱這裡。
[儲存體] 索引標籤
[結果] 區段會顯示與記憶體相關的各種結果和建議。
[ 封鎖裝置 ] 和其他相關區段,例如 分割區、 LVM 和 MDADM 索引標籤,說明如何設定區塊裝置並彼此相關。
Linux 索引標籤
[Linux] 索引標籤包含 VM 中執行之硬體和作業系統的相關信息。 詳細數據包括執行中的進程清單,以及客體代理程式、PCI、CPU、GPU、驅動程式和 LIS 驅動程式的相關信息。
或在已啟用 GPU 的 VM 上:
下一步
您可以將診斷記錄和報告上傳至 Microsoft 支援服務,以進一步檢閱。 當您與 Microsoft 支援服務 員工合作時,他們可能會要求您傳輸 PerfInsights 所產生的輸出,以協助進行疑難解答程式。
下列螢幕快照顯示類似您可能會收到的訊息:
請遵循訊息中的指示來存取檔傳輸工作區。 若要獲得額外的安全性,您必須在第一次使用時變更密碼。
登入之後,您會看到一個對話框,以上傳 PerfInsights 收集的PerformanceDiagnostics_yyyy-MM-dd_hh-mm-ss-fff.tar.gz 檔案。
與我們連絡,以取得說明
如果您有問題或需要相關協助,請建立支援要求,或詢問 Azure community 支援。 您也可以向 Azure 意見反應社群提交產品意見反應。