使用 Azure Advisor 改善 Azure 應用程式的效能

Azure Advisor 中的效能建議有助於提升業務關鍵性應用程式的速度和回應能力。 您可以在 Advisor 儀表板的 [效能] 索引標籤上,取得 Advisor 的效能建議。

在流量管理員設定檔上縮短 DNS 存留時間,以更快容錯移轉至良好端點

您可以在流量管理員設定檔上使用存留時間 (TTL) 設定,以指定當端點停止回應查詢時,應該多快切換至端點。 如果降低 TTL 值,用戶端會更快路由傳送至正常運作的端點。

Azure Advisor 可找出已設定較長 TTL 的流量管理員設定檔。 建議將 TTL 設定為 20 秒或 60 秒,視設定檔是否設定為快速容錯移轉而定。

使用 SQL Database Advisor (暫時停用) 來改善資料庫效能

Azure Advisor 可針對所有的 Azure 資源提供一致的合併建議檢視。 此服務與 SQL Database Advisor 整合,為您提供建議來改善資料庫的效能。 SQL Database Advisor 分析使用歷程記錄,以評定資料庫的效能。 然後提供最適合執行資料庫一般工作負載的建議。

注意

資料庫必須使用大約一週,而且在該週內必須有一些一致的活動,您才能取得建議。 相較於隨機蹦出的活動,一致的查詢模式更有利於 SQL Database Advisor 最佳化。

如需詳細資訊,請參閱 SQL Database Advisor

將儲存體用戶端程式庫更新為最新版本,以提高可靠性和效能

針對由客戶回報且透過 QA 流程主動找出的問題,最新版的儲存體用戶端程式庫 SDK 包含修正程式。 最新版本也提供可靠性和效能最佳化,還有新的功能,可改善 Azure 儲存體的整體使用體驗。 如果您使用過時的 SDK 版本,Advisor 提供升級至最新版 SDK 所需的建議和步驟。 建議適用於支援的語言:C++ 和 .NET。

改善 App Service 的效能和可靠性

Azure Advisor 整合建議來改善 App Service 體驗,並探索相關的平台功能。 App Service 建議的例子如下︰

  • 偵測由應用程式執行階段耗盡記憶體或 CPU 資源的情況,並提供緩和選項。
  • 偵測可共置資源 (例如 Web 應用程式和資料庫) 來改善效能並降低成本的情況。

如需詳細資訊,請參閱 Azure App Service 的最佳做法

使用受控磁碟來避免磁碟 I/O 節流

Advisor 識別哪些虛擬機器屬於接近可擴縮性目標的儲存體帳戶。 這種情況讓這些 VM 很可能會執行 I/O 節流。 Advisor 建議使用受控磁碟以避免效能降低。

使用進階儲存體以改善虛擬機器磁碟的效能和可靠性

Advisor 識別您的儲存體帳戶上哪些虛擬機器的標準磁碟有大量交易。 Advisor 建議升級至進階磁碟。

針對執行時需要大量 I/O 之工作負載的虛擬機器,「Azure 進階儲存體」可提供高效能、低延遲的磁碟支援。 使用進階儲存體帳戶的虛擬機器磁碟將資料儲存在固態硬碟 (SSD)。 為了讓應用程式發揮最佳效能,建議將任何需要高 IOPS 的虛擬機器磁碟遷移至進階儲存體。

移除 Azure Synapse Analytics 資料表上的資料扭曲,以提高查詢效能

執行工作負載時,資料扭曲可能造成不必要的資料移動或資源瓶頸。 Advisor 偵測大於 15% 的散發資料扭曲。 建議重新散發資料,並重新檢討資料表散發索引鍵選擇。 若要深入了解如何識別和移除扭曲,請參閱針對扭曲進行疑難排解

在 Azure Synapse Analytics 資料表中建立或更新過期的資料表統計資料,以提高查詢效能

Advisor 識別不含最新資料表統計資料的資料表,並建議建立或更新統計資料。 Azure Synapse Analytics 中的查詢最佳化工具使用最新統計資料,以估計查詢結果中的基數或資料列數目。 這些估計值可讓查詢最佳化工具建立查詢計劃,以提供最快的效能。

改善 MySQL 連線管理

Advisor 分析可指出連線至 MySQL 伺服器的應用程式可能未有效管理連線。 此狀況可能導致不必要的資源耗用,並使得整體應用程式延遲偏高。 若要改善連線管理,建議您減少短期連線的數目,並排除不必要的閒置連線。 您可以設定伺服器端連線共用器 (例如 ProxySQL) 來進行這些改善。

擴大將 Azure Synapse Analytics 資料表的快取使用率最佳化,以提升查詢效能

Azure Advisor 偵測 Azure Synapse Analytics 資料表快取使用百分比是否過高,以及命中百分比是否過低。 此狀況表示高快取收回,可能影響 Azure Synapse Analytics 執行個體的效能。 Advisor 建議您擴大 Azure Synapse Analytics 執行個體,以確保為工作負載配置足夠的快取容量。

將 Azure Synapse Analytics 資料表轉換為複寫的資料表,以提升查詢效能

Advisor 識別哪些資料表不是複寫的資料表,但可受益於轉換。 Advisor 建議轉換這些資料表。 建議是根據:

  • 複寫資料表的大小。
  • 行數。
  • 資料表散發類型。
  • Azure Synapse Analytics 資料表上的分割區數目。

建議中可能提供適合情境的啟發學習法。 若要深入了解如何決定此建議,請參閱 Azure Synapse Analytics 建議

將儲存體帳戶遷移至 Azure Resource Manager 以獲得最新的 Azure 功能

將儲存體帳戶部署模型遷移至 Azure Resource Manager,以利用:

  • 範本部署。
  • 其他安全性選項。
  • 能夠升級至 GPv2 帳戶,讓您可以使用最新的 Azure 儲存體功能。

Advisor 識別任何使用傳統部署模型的獨立儲存體帳戶,並建議遷移至 Resource Manager 部署模型。

注意

Azure 監視器中的傳統警示已於 2019 年 8 月淘汰。 建議您將傳統儲存體帳戶升級為使用 Resource Manager,以在新平台上保留警示功能。 如需詳細資訊,請參閱傳統警示洶汰

設計您的儲存體帳戶,以免達到最大訂用帳戶限制

Azure 區域支援每一訂用帳戶最多 250 個儲存體帳戶。 達到此限制後,就無法在該區域/訂用帳戶組合中建立儲存體帳戶。 Advisor 檢查訂用帳戶,並建議您針對接近上限的任何區域/訂用帳戶設計較少的儲存體帳戶。

考慮增大 VPN 閘道 SKU 以解決 P2S 使用量過高的情況

每個 Azure VPN 閘道 SKU 只能支援一定數目的 P2S 同時連線。 如果連線計數接近閘道限制,則其他連線嘗試可能失敗。 如果增大閘道,就能夠支援更多同時的 P2S 使用者。 Advisor 提供建議和指示來增大閘道。

考慮增大 VPN 閘道 SKU 以解決高 CPU 的情況

在高流量負載下,VPN 閘道可能會因為高 CPU 而捨棄封包。 考慮升級 VPN 閘道 SKU。 增大 VPN 閘道可確保不會因為高 CPU 而中斷連線。 Advisor 提供建議來主動解決此問題。

增加載入時的批次大小,以最大化載入輸送量、資料壓縮和查詢效能

Advisor 查明您於載入至資料庫時是否可增大批次,以提高載入效能和輸送量。 您可以考慮使用 COPY 陳述式。 如果無法使用 COPY 陳述式,請在使用 SQLBulkCopy API 或 BCP 之類的載入公用程式時,考慮增大批次。 較好的通則是使用 10 萬到 1 百萬個資料列的批次大小。 增大批次會增加載入輸送量、資料壓縮和查詢效能。

將儲存體帳戶共置於相同區域,以便載入時將延遲降到最低

Advisor 偵測您是否從不同於專用 SQL 集區的區域載入。 考慮從與專用 SQL 集區位於相同區域的儲存體帳戶載入,以便載入資料時盡可能縮短延遲。 此變更有助於將延遲降到最低,並提高載入效能。

使用支援的 Kubernetes 版本

Advisor 偵測不支援的 Kubernetes 版本。

將「適用於 MySQL 的 Azure 資料庫」、「適用於 PostgreSQL 的 Azure 資料庫」和「適用於 MariaDB 的 Azure 資料庫」伺服器的效能最佳化

舒緩面臨 CPU 瓶頸的「適用於 MySQL 的 Azure 資料庫」、「適用於 PostgreSQL 的 Azure 資料庫」和「適用於 MariaDB 的 Azure 資料庫」伺服器所承受的 CPU 壓力

CPU 使用率長時間過高可能導致工作負載的查詢效能變慢。 增大 CPU 有助於最佳化資料庫查詢的執行時間,並改善整體效能。 Advisor 識別 CPU 使用率過高且可能執行 CPU 受限工作負載的伺服器,並建議縮放計算。

減輕「適用於 MySQL 的 Azure 資料庫」、「適用於 PostgreSQL 的 Azure 資料庫」和「適用於 MariaDB 的 Azure 資料庫」伺服器的記憶體限制,或改用記憶體最佳化 SKU

低快取命中率可能導致查詢效能變慢和 IOPS 增加。 此狀況可能起因於查詢計劃不當或記憶體密集工作負載。 針對「適用於 PostgreSQL 的 Azure 資料庫」、「適用於 MySQL 的 Azure 資料庫」或「適用於 MariaDB 的 Azure 資料庫」伺服器,修正查詢計劃或增加記憶體有助於最佳化資料庫工作負載的執行。 Azure Advisor 識別這樣的緩衝集區高流失率所影響的伺服器。 建議您採取下列其中一個動作:

  • 修正查詢計劃
  • 改用具有更多記憶體的 SKU
  • 增大儲存體以獲得更多 IOPS。

使用「適用於 MySQL 的 Azure 資料庫」或「適用於 PostgreSQL 的 Azure 資料庫」讀取複本,擴增密集讀取工作負載的讀取

Advisor 使用工作負載型啟發學習法,例如伺服器在過去七天內的讀寫比例,以識別密集讀取的工作負載。 讀寫比例過高的「適用於 PostgreSQL 的 Azure 資料庫」或「適用於 MySQL 的 Azure 資料庫」資源可能造成 CPU 或記憶體爭用,並導致查詢效能變慢。 新增複本有助於將讀取擴增至複本伺服器,並防止主要伺服器上的 CPU 或記憶體限制。 Advisor 識別有密集讀取工作負載的伺服器,並建議您新增讀取複本,以卸載一些讀取工作負載。

將「適用於 MySQL 的 Azure 資料庫」、「適用於 PostgreSQL 的 Azure 資料庫」或「適用於 MariaDB 的 Azure 資料庫」伺服器調整為更高的 SKU,以防止連線限制

資料庫伺服器的每個新連線都佔用記憶體。 如果伺服器的連線因為記憶體的上限而失敗,資料庫伺服器的效能會降低。 Azure Advisor 識別連線失敗許多次的伺服器。 建議採取下列其中一個動作來提高伺服器的連線限制,以提供更多記憶體給伺服器:

  • 擴大計算。
  • 使用記憶體最佳化 SKU,每個核心有更多計算。

將快取調整為不同的大小或 SKU,以改善快取和應用程式效能

快取執行個體不在高記憶體壓力、高伺服器負載或高網路頻寬下執行時,表現最佳。 這些狀況可能導致執行個體沒有反應、發生資料遺失或無法使用。 Advisor 識別面臨這些狀況的快取執行個體。 建議您採取下列其中一個動作:

  • 採取最佳做法來降低記憶體壓力、伺服器負載或網路頻寬。
  • 調整為有更多容量的不同大小或 SKU。

將具有流量的區域新增至 Azure Cosmos DB 帳戶

Advisor 偵測哪些 Azure Cosmos DB 帳戶的流量來自目前未設定的區域。 建議新增該區域。 這樣可將來自該區域的要求改善延遲,並確保區域中斷時的可用性。 深入了解 Azure Cosmos DB 的全域資料散發。

使用自訂併入或排除路徑來設定 Azure Cosmos DB 編製索引原則

Advisor 識別哪些 Azure Cosmos DB 容器使用預設編制索引原則,但可受益於自訂編制索引原則。 此判斷是根據工作負載模式。 預設編制索引原則將所有屬性編制索引。 在查詢篩選條件中使用明確併入或排除路徑的自訂索引編製原則,可降低編製索引時耗用的 RU 和儲存體。 深入了解修改索引原則。

將 Azure Cosmos DB 查詢分頁大小 (MaxItemCount) 設定為 -1

Azure Advisor 識別哪些 Azure Cosmos DB 容器使用的查詢分頁大小為 100。 建議使用 -1 的分頁大小來加快掃描。 深入了解 MaxItemCount。

考慮在 HBase 叢集上使用「加速寫入」功能來改善叢集效能

Azure Advisor 分析過去 7 天內的系統記錄檔,並識別叢集是否遇到下列情況:

  1. 高 WAL 同步時間延遲
  2. 高寫入要求計數 (至少 3 次一小時的時段超過 1000 avg_write_requests/秒/節點)

這些條件是您的叢集飽受高寫入延遲所苦的指標。 這可能是因為叢集上執行的工作負載繁重。若要改善叢集的效能,您可以考慮使用 Azure HDInsight HBase 提供的「加速寫入」功能。 HDInsight Apache HBase 叢集的加速寫入功能會將進階 SSD 受控磁碟附加到每個 RegionServer (背景工作節點),而不是使用雲端儲存體。 因此會為您的應用程式帶來低寫入延遲和更佳的復原能力。 若要深入了解此功能,請深入了解

檢閱 Azure 資料總管資料表快取期間 (原則) 以提高效能 (預覽)

這項建議會顯示 Azure 資料總管資料表,其中包含大量查詢,會往回查看已設定的快取期間 (原則) 以外的範圍 (您會看到依據存取快取資料的查詢百分比排列的前 10 個資料表)。 改善叢集效能的建議動作:將此資料表的查詢限制為最小的所需時間範圍 (在定義的原則內)。 或者,如果需要來自整個時間範圍的資料,請將快取期間增加為建議的值。

藉由將 MySQL 暫存資料表大小調整最佳化來改善效能

Advisor 分析指出由於暫存表格參數設定太低,MySQL 伺服器可能產生不必要的 I/O 負荷。 這可能會導致不必要的磁碟型交易和效能降低。 建議您增加 'tmp_table_size' 和 'max_heap_table_size' 參數值,以減少磁碟型交易的數目。 深入了解

分配伺服器群組中的資料以在節點間分配工作負載

Advisor 識別尚未散發資料但停留在協調器上的伺服器群組。 因此,Advisor 建議將資料散發至伺服器群組的背景工作節點,以完整發揮超大規模 (Citus) 優點。 這樣可利用伺服器群組中每個節點的資源,以改善查詢效能。 深入了解

將 VM 部署到更接近 Azure 虛擬桌面部署位置,以改善使用者體驗和連線能力

使用 Azure 虛擬桌面,我們判斷您的 VM 位置與使用者連線的區域不同或更遠。 這可能會導致連線回應時間變長,並會影響 Azure 虛擬桌面的整體使用者體驗。 建立主機集區的 VM 時,您應該嘗試使用更接近使用者的區域。 較近的鄰近性可讓維持使用者對 Azure 虛擬桌面服務的滿意度,同時獲得更好的整體體驗品質。 在這裡深入了解連線延遲

升級到最新版本的沈浸式閱讀程式 SDK

我們發現此訂用帳戶下的資源使用過時的沈浸式閱讀程式 SDK 版本。 使用最新版本的沈浸式閱讀程式 SDK 可為您提供更新的安全性、效能和擴充的功能集,以便自訂及增強您的整合體驗。 深入了解沈浸式閱讀程式 SDK

變更工作階段上限來改善 VM 效能

Advisor 偵測到您的主機集區將深度優先設定為負載平衡演算法,且該主機集區的工作階段上限大於或等於999999。 深度的第一次負載平衡使用最大工作階段限制,來判斷單一工作階段主機上,可擁有並行工作階段的使用者數目上限。 如果工作階段上限太高,所有使用者工作階段會導向相同的工作階段主機,這可能導致效能和可靠性問題。 因此,將主機集區設定為深度優先負載平衡時,您必須根據部署的設定和 VM 的容量,設定適當的工作階段上限。

若要深入了解 Azure 虛擬桌面中的負載平衡,請參閱主機集區負載平衡演算法

升級至最新版的 Azure 通訊服務 SDK

Advisor 發現此訂用帳戶下的資源使用舊版的特定 Azure 通訊服務 SDK。 使用最新版的 Azure 通訊服務 SDK 可為您提供更新的安全性、效能和更大的一套功能,以便自訂及增強通訊體驗。 深入了解 Azure 通訊服務與 Azure Advisor 整合

如何存取 Advisor 中的效能建議

  1. 登入 Azure 入口網站,然後開啟 Advisor

  2. 在 Advisor 儀表板上,選取 [效能] 索引標籤。

後續步驟

若要深入了解 Advisor 建議,請參閱: