使用效能診斷對 Azure 虛擬機上的效能問題進行疑難解答
適用於:✔️ Linux VM ✔️ Windows VM
使用效能診斷工具,以下列兩種模式之一識別 Azure 虛擬機 (VM) 上的效能問題並進行疑難解答:
- 連續診斷 (預覽) 會以五秒間隔收集數據,並每隔五分鐘報告一次關於高資源使用量的可操作見解。
- 隨選診斷 可協助您根據在單一時間點收集的數據,針對持續效能問題進行疑難解答,並提供更深入的數據、深入解析和建議。
效能診斷會將所有深入解析和報告儲存在記憶體帳戶中,您可以將其設定為短期數據保留,以將成本降至最低。
直接從 Azure 入口網站 執行效能診斷,您也可以檢閱各種記錄、豐富組態和診斷數據的見解和報告。 建議您先執行效能診斷,並檢閱深入解析和診斷數據,再連絡 Microsoft 支援服務。
本文說明如何使用效能診斷,以及持續和隨選模式提供的內容。
注意
持續診斷(預覽版)正在逐漸推出,目前僅支援 Windows。 如果您的機器可以使用預覽功能,您會看到啟用隨選和連續診斷的選項,如在 VM 上安裝和執行效能診斷中所述。
必要條件
- 若要在 Windows 上執行連續和隨選診斷,您需要 .NET SDK 4.5 版或更新版本。
注意
若要在傳統 VM 上執行效能診斷,請參閱 Azure 效能診斷 VM 擴充功能。
需要的權限
動作 | 需要的權限 |
---|---|
檢視效能診斷深入解析和報告 | Microsoft.Storage/storageAccounts/listKeys/action 記憶體帳戶的許可權,如內 建記憶體帳戶參與者 角色所提供。 |
受支援的作業系統
Windows
目前支援隨選和連續診斷的下列操作系統:
- Windows Server 2022
- Windows Server 2019
- Windows Server 2016
- Windows Server 2012 R2
- Windows Server 2012
- Windows 11
- Windows 10
Linux
注意
本文所參考的 CentOS 是一種 Linux 發行版,且將到達生命周期結束(EOL)。 請據以考慮您的使用和規劃。 如需詳細資訊,請參閱 CentOS 生命週期結束指引。
目前支持隨選診斷的下列散發套件:
注意
Microsoft只測試數據表中列出的版本。 如果數據表中未列出版本,則不會透過Microsoft明確測試版本,但版本可能仍可運作。
發佈 | 版本 |
---|---|
Oracle Linux Server | 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 |
注意
[*
] 請參閱 已知問題
在您的 VM 上安裝和執行效能診斷
Performance Diagnostics 會安裝執行診斷工具的 VM 擴充功能,稱為 PerfInsights。 PerfInsights 適用於 Windows 和 Linux。
若要安裝和執行效能診斷:
在 Azure 入口網站 中,選取 [虛擬機]。
從 VM 名稱清單中,選取您要執行診斷的 VM。
在 [說明] 區段中,選取 [效能診斷]。
選取 [ 啟用效能診斷]
選取要安裝並執行工具的選項。
下表描述可用的選項:
選項 描述 啟用連續診斷 取得高資源使用量的持續、可採取動作的深入解析,並收集每 5 秒收集的數據,並每隔 5 分鐘上傳一次更新,以及時解決效能問題。 將深入解析儲存在您慣用的記憶體帳戶中。 記憶體帳戶會根據帳戶保留原則保留深入解析,您可以設定此原則以 有效管理數據生命週期。 您可以隨時停用連續診斷。 執行隨選診斷 取得高資源使用量和各種系統組態的隨選、可採取動作的深入解析。 接收可下載的報告,其中包含完整的診斷數據,以解決效能問題。 將深入解析和報表儲存在您慣用的記憶體帳戶中。 記憶體帳戶會根據帳戶保留原則保留深入解析,您可以設定此原則以 有效管理數據生命週期。 您可以隨時使用您需要的特定分析類型來起始隨選診斷: - 效能分析
包含快速分析案例中的所有檢查,並監視高資源耗用量。 使用此版本針對一般效能問題進行疑難解答,例如高 CPU、記憶體和磁碟使用量。 此分析需要 30 秒到 15 分鐘,視選取的持續時間而定。 深入瞭解 Windows 或 Linux - 快速分析
檢查已知問題、分析最佳做法,以及收集診斷數據。 此分析需要幾分鐘的時間才能執行。 深入瞭解 Windows 或 Linux - 進階效能分析 [
*
]
包含效能分析案例中的所有檢查,並收集一或多個追蹤,如下列各節所列。 使用此案例針對需要更多追蹤的複雜問題進行疑難解答。 長時間執行此案例會增加診斷輸出的整體大小,視 VM 的大小和選取的追蹤選項而定。 此分析需要 30 秒到 15 分鐘才能執行,視選取的持續時間而定。 深入了解 - Azure 檔案分析 [
*
]
包含效能分析案例中的所有檢查,並擷取網路追蹤和SMB計數器。 使用此案例來針對 Azure 檔案的效能進行疑難解答。 此分析需要 30 秒到 15 分鐘才能執行,視選取的持續時間而定。 深入了解
儲存體帳戶 或者,如果您想要使用單一儲存體帳戶來儲存多個 VM 的效能診斷結果,您可以從下拉式清單中選取記憶體帳戶。 如果您未指定記憶體帳戶,效能診斷會使用預設診斷記憶體帳戶,或建立新的儲存體帳戶。 注意
[
*
] 只有在 Windows 上才支持這些分析案例。- 效能分析
檢閱法律條款和隱私策略,然後選取對應的複選框來確認(必要)。
若要安裝和執行效能診斷,您必須同意法律條款並接受隱私策略。
選取 [ 套 用] 以套用選取的選項並安裝此工具。
通知會顯示為效能診斷開始安裝。 安裝完成之後,您會看到一則通知,指出安裝成功。 如果選取 [ 執行隨選診斷 ] 選項,則會在指定的持續時間內執行選取的效能分析案例。
檢視深入解析和報表
下表會比較連續和隨選效能診斷所提供的數據。 如需所有所收集診斷數據的完整清單,請參閱 Windows 或 Linux 上的 PerfInsights 收集何種資訊?
持續效能診斷 | 隨選效能診斷 | |
---|---|---|
可用性 | 目前僅支援 Windows VM | 支援 Windows 和 Linux VM |
產生的深入解析 | 對高資源使用量的持續可採取動作深入解析,例如高 CPU、高記憶體和高磁碟使用量 | 隨選可採取動作的深入解析,瞭解高資源使用量和各種系統設定 |
資料收集頻率 | 每隔 5 秒收集數據一次,每 5 分鐘上傳一次更新 | 視需要收集隨選執行期間的數據 |
產生的報表 | 不會產生報表 | 產生具有完整診斷數據的報告 |
檢視效能診斷深入解析
[ 效能診斷深入解析 ] 索引卷標會列出所選時段的深入解析。 每個數據列都會提供深入解析、其影響層級、類別和相關建議。 選取 [ 重新 整理] 以檢視新產生的連續診斷深入解析。
使用篩選依時間戳、影響、類別或診斷類型擷取深入解析。
選取數據列以檢視更多詳細數據。
分別選取 [檢視 ] 或 [下載],以檢視或下載清單中的隨選深入解析效能診斷報告。 如需詳細資訊,請參閱 下載並檢閱完整的效能診斷報告。
使用群組下拉式清單來分組或取消群組深入解析。 您可以依類別、深入解析或建議依需求和持續深入解析分組。
檢視效能診斷報告
[ 效能診斷報告] 索引標籤會列出執行的所有隨選診斷報告。 此清單會指出已執行的分析類型、找到的深入解析,以及其影響層級。
選取數據列以檢視更多詳細數據。
每個效能診斷報告可能包含數個深入解析,而每個深入解析都包含建議。
[影響] 數據行會根據其他用戶回報的錯誤設定、已知問題或問題等因素,指出效能問題的潛在影響層級。 您可能尚未遇到一或多個列出的問題。 例如,您可能在同一個數據磁碟上有 SQL 記錄檔和資料庫檔案。 如果資料庫使用量很高,則此狀況有很高的瓶頸和其他效能問題,而如果使用量很低,您可能會注意到問題。
選取 [ 下載報告] 按鈕以下載 HTML 報告 ,其中包含更豐富的診斷資訊,例如記憶體和網路設定、性能計數器、追蹤、進程清單和記錄。 內容取決於選取的分析。 針對進階疑難解答,報告可能包含與高 CPU 使用量、高磁碟使用量,以及耗用過多記憶體的進程相關的其他資訊和互動式圖表。 如需效能診斷報告的詳細資訊,請參閱 Windows 或 Linux。
注意
您可以在產生效能診斷之後的 30 天內,從 [效能診斷] 畫面下載效能診斷 報告。 30 天后,您可能會在從 [效能診斷 ] 畫面下載報表時收到錯誤。 若要在 30 天后取得報告,請移至記憶體帳戶,並從名為 azdiagextnresults 的二進位大型物件 (BLOB) 容器下載報表。 您可以使用工具列上的 [設定] 按鈕來檢視記憶體帳戶資訊。
檢視和管理記憶體帳戶及儲存的數據
效能診斷會將所有深入解析和報告儲存在記憶體帳戶中,您可以 將其設定為短期數據保留 ,以將成本降至最低。
若要確保效能診斷功能正確,您必須啟用 記憶體帳戶的 [允許記憶體帳戶密鑰存取 ] 設定。 若要啟用此設定,請遵循下列步驟:
- 瀏覽至您的儲存體帳戶。
- 在記憶體帳戶設定中,找出 [ 組態 ] 區段。
- 尋找 [ 允許記憶體帳戶密鑰存取 ] 選項,並將其設定為 [已啟用]。
- 儲存您的變更。
對於使用效能診斷的多個 VM,您可以使用相同的記憶體帳戶。 當您變更記憶體帳戶時,不會刪除舊的報表和深入解析。 不過,它們將不再顯示在診斷報告清單中。
注意
效能診斷會將深入解析儲存在 Azure 數據表中,並將報表儲存在二進位大型物件 (BLOB) 容器中。
如果您的記憶體帳戶使用 私人端點,請確定效能診斷可以將深入解析和報告儲存在記憶體帳戶中:
- 為數據表和 BLOB 建立個別的私人端點。
- 將 DNS 組態新增至每個個別的私人端點。
檢視帳戶中儲存的診斷數據
若要檢視這些檔案:
瀏覽至您的儲存體帳戶。
選取 [儲存體瀏覽器]。
效能診斷會將報表儲存在二進位大型物件 (BLOB) 容器中,名為 azdiagextnresults,以及數據表中的深入解析。
深入解析包括:
- 執行的所有深入解析和相關信息。
- Windows 上的輸出壓縮(.zip)檔案(名為 PerformanceDiagnostics_yyyy-MM-dd_hh-mm-ss-fff.zip),以及包含記錄檔的Linux上的 tar 檔案(名為 PerformanceDiagnostics_yyyy-MM-dd_hh-mm-ss-fff.tar.gz)。
- HTML 報表。
若要下載報表,請選取 [Blob 容器>azdiagextnresults>>
<report name>
Download]。
變更記憶體帳戶
若要變更記憶體帳戶:
卸載效能診斷
從 VM 卸載效能診斷會移除 VM 擴充功能,但不會影響記憶體帳戶中的任何診斷數據。
若要卸載效能診斷,請選取工具列上的 [ 卸載 ] 按鈕。
常見問題集
如何? 與 Microsoft 客戶支援共用此數據?
當您使用 Microsoft 開啟支援票證時,請務必從隨選效能診斷執行共用效能診斷報告。 Microsoft CSS 聯繫人會為您提供將隨選效能診斷報告上傳至工作區的選項。 有兩種方式可以下載隨選效能診斷報告,以與 Microsoft CSS 共用:
選項 1:從 [效能診斷] 刀鋒視窗下載報告,如檢視效能診斷報告中所述。
選項 2:從記憶體帳戶下載報告,如檢視和管理記憶體帳戶及儲存的數據中所述。
如何? 正確時間擷取診斷數據?
建議您執行持續效能診斷,以持續擷取 VM 診斷數據。
隨選效能診斷執行有兩個階段:
- 安裝或更新效能診斷 VM 擴充功能。
- 執行指定持續時間的診斷。
目前,無法確切地知道 VM 擴充功能安裝何時完成。 安裝 VM 擴充功能大約需要 45 秒到 1 分鐘。 安裝 VM 擴充功能之後,您可以執行重現步驟,讓 On-deman 效能診斷擷取正確的數據集以進行疑難解答。
當我跨區域移動 Azure VM 時,效能診斷會繼續運作嗎?
Azure VM 和相關網路和記憶體資源可以使用 Azure Resource Mover 跨區域移動。 不過,不支援跨區域移動 VM 擴充功能,包括 Azure 效能診斷 VM 擴充功能。 移動 VM 之後,您必須在目標區域中的 VM 上手動安裝擴充功能。 如需詳細資訊,請參閱 在 Azure 區域之間移動 Azure VM 的支援矩陣。
啟用持續效能診斷的效能影響為何?
我們在各種 Windows OS 版本、大小和 CPU 負載的 Azure VM 上執行了 12 小時的持續效能診斷測試。
下表中顯示的測試結果顯示,持續效能診斷提供對系統資源影響最小的重要見解:
作業系統版本 | VM 大小 | CPU 負載 | 平均 CPU 使用量 | 90 百分位數的CPU使用量 | 99 百分位數的CPU使用量 | 記憶體使用量 |
---|---|---|---|---|---|---|
Windows Server 2019 | B2s、A4V2、D5v2 | 20%, 50%, 80% | <0.5% | 2% | 3% | 42-43 MB |
Windows Server 2016 SQL | B2s、A4V2、D5v2 | 20%, 50%, 80% | <0.5% | 2% | 3% | 42-43 MB |
Windows Server 2019 | B2s、A4V2、D5v2 | 20%, 50%, 80% | <0.5% | 2% | 3% | 42-43 MB |
Windows Server 2022 | B2s、A4V2、D5v2 | 20%, 50%, 80% | <0.5% | <0.5% | 3% | 42-43 MB |
記憶體成本的餐巾計算回來
持續效能診斷會將深入解析儲存在數據表中,並將 JSON 檔案儲存在 Blob 容器中。 假設每個數據列大約是 0.5 KB(KB),而且報表在壓縮前大約是 9 KB,每五分鐘兩個數據列加上對應的報表上傳會傳出 10 KB 或 0.00001 GB。
現在,讓我們計算機成本:
- 每個月的數據列:17,280
- 每個數據列的大小:0.00001 GB
數據大小總計: 17,280 x 0.000001 = 0.1728 GB
數據儲存成本: $0.1728 x $0.045 = $0.007776
因此,假設 VM 有穩定的壓力,假設您使用本地備援記憶體,記憶體成本估計每月小於 1%。
與我們連絡,以取得說明
如果您有問題或需要相關協助,請建立支援要求,或詢問 Azure community 支援。 您也可以向 Azure 意見反應社群提交產品意見反應。