針對效能診斷 (PerfInsights) 的 Linux 虛擬機效能問題進行疑難解答
注意事項
本文中參考的 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 裝置 [
進程和記憶體
- 工作名稱 (處理程式清單、使用的記憶體、開啟的檔案)
- 總計、可用和可用的物理記憶體
- 總計、可用和可用的交換記憶體
- 以 5 秒間隔擷取 CPU 和處理 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
- 過去五天的日誌輸出
*
僅在 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.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 意應見反社群。
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應