共用方式為


持續效能最佳化的架構策略

適用於此 Azure Well-Architected Framework 效能效率檢查清單建議:

體育:12 持續最佳化效能。 重點關注隨著時間的推移表現出性能下降的組件,例如數據庫和網絡功能。

本指南說明持續效能最佳化的建議。 持續效能最佳化是不斷監控、分析和提高效能效率的過程。 性能效率適應需求的增加和減少。 效能最佳化必須是工作負載整個生命週期的持續活動。 工作負載效能通常會隨著時間而降低或變得過多,需要考慮的因素包括使用模式、需求、功能和技術債務的變更。

定義

術語 Definition
資料分層 包含根據存取頻率分類數據的儲存策略,並據以儲存在儲存層上。
技術債務 累積的低效率、次優設計選擇或在開發過程中故意採取的捷徑,以更快地交付程式碼。
存活時間 設定資料到期時間的機制。

效能效率是指工作負載容量與實際使用量一致。 效能過高的工作負載與效能不佳的工作負載一樣有問題。 權衡不同。 效能過高會影響成本最佳化。 效能不佳會影響使用者。 效能效率的關鍵是隨著時間的推移進行監控、調整和測試。 您需要定期檢閱效能指標,並視需要進行調整,以確保工作負載有效率。 需要在實施之前和之後測試所有更改才能達到性能目標。

發展表演文化

績效文化是一種期望持續改進並讓團隊從生產中學習的環境。 效能最佳化需要專業技能。 工作負載團隊需要正確的技能和思維方式來優化其績效,以滿足需求的增加和減少。 您也需要分配他們的時間,以支援出現效能問題所需的監控和補救。 這些團隊需要明確的期望。 例如,績效目標、基線和偏差閾值(與基線的距離是可接受的)需要高度可見和社交化。

衡:持續的效能最佳化需要一個擁有適當技能和時間的團隊來尋找和修復效能問題。 將人員投入績效會增加營運成本。 如果您的人力資源有限,持續的效能最佳化可能會佔用其他作業工作的時間。

評估新的平台功能

評估新的平台功能涉及檢查平台的新功能和工具,這些功能和工具可以提高效能效率,例如優化的儲存解決方案、快取機制或資源管理工具。 新的平台功能可以開闢提高績效效率的途徑。 讓您的平台和工具保持 up-to,以確保您使用最新的創新和最佳實踐。 持續監控這些新增功能的回饋和績效指標,以完善您的方法。

排定最佳化工作的優先順序

主動最佳化效能意味著在出現任何效能問題之前採取主動措施來改善和增強工作負載的效能。 使用主動措施包括識別潛在瓶頸、監控效能指標以及實施最佳化,以確保工作負載高效運作並滿足所需的效能目標。 根據對惡化元件、關鍵流程和技術債務的分析,您可以針對每個區域實施特定的性能優化。 改進可能涉及程式碼變更、基礎設施調整或配置更新。

優先考慮劣化的組件

工作負載通常具有資料庫和網路元件等元件,這些元件容易隨著時間而降低效能。 隨著工作負載的發展和使用模式的變化,這些變化通常會影響工作負載中各個元件的效能。 資料庫中資料的增加可能會導致查詢執行時間更長,資料擷取速度也較慢。 使用模式的變更可能會導致查詢設計不理想。 隨著工作負載的發展,曾經高效的查詢可能會變得低效。 低效率的查詢可能會消耗過多的資源並降低資料庫效能。 工作負載使用量增加可能會導致網路流量增加,從而導致擁塞和延遲問題。

不斷努力優化這些組件的性能非常重要。 主動識別並解決工作負載中的效能問題。 透過優先考慮已知惡化的元件,您可以主動解決潛在的效能問題並確保工作負載的平穩運作。 它可能涉及實施效能調整技術、優化資源分配或根據需要升級硬體或軟體組件。

排定關鍵流程的優先順序

重要流程是工作負載中最重要且優先順序最高的程序或工作流程。 透過排定這些關鍵流程的優先順序,您可以確保工作負載中最重要的部分針對效能進行最佳化。 了解哪些流程至關重要有助於確定最佳化工作的優先順序。 優化應用程序最重要領域的性能效率可提供最高的投資回報。 您應該監控重要流程和最受歡迎的頁面。 尋找提高效率的方法。

自動化效能最佳化

自動化可以消除重複且耗時的手動流程,從而有效地執行它們。 自動化減少了人為錯誤的機會,並確保執行最佳化任務的一致性。 透過自動化這些任務,您還可以讓人們專注於更複雜的活動和增加價值的活動。 您可以將自動化套用至各種工作,例如效能測試、部署和監控:

  • 自動化性能測試: 使用 JMeter、K6 或 Selenium 等自動化性能測試工具模擬不同的工作負載和場景。

  • 自動化部署:實施自動化部署流程,以確保部署一致且無錯誤。 使用 CI/CD 工具將部署程序自動化。 這些工具可協助您識別效能瓶頸,因為您可以使用它們來測試端點、檢查 HTTP 狀態,甚至驗證資料品質和變化。

  • 監控和警報:設置自動監控和警報系統,持續監控性能指標並檢測任何偏差或異常。 當偵測到效能問題時,可以觸發自動警報以通知適當的團隊或個人。

  • 事件管理:實施自動化事件管理系統,可以接收警報、創建票證並將票證分配給適當的團隊進行解決。 這些步驟有助於確保效能問題得到及時解決並將指派給正確的資源。

  • 自動診斷:開發自動化診斷工具或腳本,可以分析效能資料並識別效能問題的根本原因。 這些工具可以幫助找出導致效能問題的系統特定區域或組件。

  • 自動補救動作:定義並實作偵測到特定效能問題時可觸發的自動化補救動作。 這些操作可以包括重新啟動服務、調整資源分配、清除快取或實施其他效能最佳化技術。

  • 自我修復系統:透過自動化已知效能問題的復原程序,將自我修復功能建置到您的系統中。 此功能可能涉及自動修復或調整系統配置以恢復最佳效能。

解決技術債務

技術債務是指在開發過程中累積的低效率、次優設計選擇或可能影響效能的捷徑。 技術債務、不清晰的程式碼和過於複雜的實作可能會使效能效率更難以實現。 解決技術債務涉及識別和解決這些問題,以提高工作負載的整體效能和可維護性。 這項工作可能包括重構程式碼、最佳化資料庫查詢、改進架構設計或實作最佳實務。 也許您引進了技術債務來滿足期限,但您需要在一段時間內優化效能效率時解決技術債務。

最佳化資料庫

持續優化資料庫涉及識別和實施最佳化,以確保資料庫能夠處理負載、提供快速回應時間並最大限度地減少資源利用率。 透過定期優化資料庫,您可以提高應用程式效能、減少停機時間並增強整體使用者體驗。

  • 最佳化資料庫查詢:寫得不好的SQL語句會降低資料庫的效能。 低效的 JOIN 條件可能會導致不必要的資料處理。 複雜的子查詢、巢狀查詢和過多的函數會降低執行速度。 應重寫擷取過多資料的查詢。 您應該識別最常見或最關鍵的資料庫查詢並對其進行最佳化。 優化有助於確保更快的查詢。

  • 維護索引: 評估您的索引策略,以確保索引設計和維護正確。 索引維護包括識別未使用或冗餘的索引,以及建立與查詢模式一致的索引。 資料庫索引有助於加速資料擷取作業。 對於關聯式資料庫,您需要監視索引片段。 您應該定期重建或重組索引。 對於非關聯式資料庫,您需要為您的工作負載挑選正確的索引原則。 在可用的資料庫上使用自動調整。 這些功能包括自動建立遺漏索引、捨棄未使用的索引,以及計劃更正。 如需相關資訊,請參閱 維護索引以增進效能

  • 審查模型設計: 審查數據模型,確保您針對應用程序的特定要求進行優化。 改善查詢效能和資料擷取可能涉及非正規化、分割或其他技術。

  • 最佳化資料庫配置:最佳化資料庫配置設置,如記憶體分配、磁碟I/O和並發設置,以最大化效能和資源利用率。

最佳化資料效率

優化數據效率是確保以最有效的方式存儲、處理和訪問數據的過程。 資料分層和使用存留時間 (TTL) 是可用於最佳化資料效率的技術。 您可以在各種資料儲存案例中套用這些技術,例如資料庫、檔案系統或物件儲存。

  • 使用資料分層:資料分層涉及根據資料的重要性或存取頻率對資料進行分類,並相應地將資料儲存在不同的層中。 設定資料分層可以更有效率地使用儲存資源並提高效能。 經常存取或關鍵資料可以儲存在高效能層中,而存取頻率較低或不太重要的資料可以儲存在成本較低的層中。 目標是檢閱一段時間內的資料使用情況,以確保資料位於正確的層級中。 隨著資料優先順序的變更,資料應該從一層移至另一層。

  • 實作存留時間:存留時間是一種設定資料到期時間的機制。 存留時間允許資料在一定時間後自動刪除或歸檔,從而減少儲存需求並改善資料管理。 透過設定適當的生存時間,您可以刪除不必要的數據,從而釋放儲存空間並提高整體效率。 工作階段資料、暫存檔案和快取資料是存留時間的常見目標。 資料庫項目也可以有存留時間。

風險:存留時間太短可能會造成效能問題。

Azure 支援服務

自動化效能優化:Azure Advisor 會根據工作負載遙測提供自動 效能建議 。 您應該定期查看並解決這些建議。 Azure 監視器可讓您即時深入瞭解系統效能,並可讓您根據特定效能計量設定警示。 Azure Log Analytics 提供收集的記錄和計量的自動化診斷和分析。 Azure Application Insights 等工具提供優化效能的深入解析和建議。

若要自動修復,請使用自動化工具或指令碼在觸發警示時自動執行修復動作。 您可以使用 Azure 自動化、Azure Functions 或自訂自動化解決方案。

Azure 可讓效能測試來模擬不同的使用者案例和工作負載。 自動化測試可以幫助您識別效能瓶頸並相應地優化您的系統。 Azure DevOps 等工具可以將效能測試自動化。

最佳化資料庫:SQL 系列產品具有許多 內建功能 ,可讓您監控和修復 SQL 資料庫效能。 您應該使用這些特性來維護資料庫效能。 Azure SQL 資料庫具有 自動微調 功能,可持續監視和改善查詢。 您應該使用此功能來自動改進 SQL 查詢。

您可以使用 Azure Cosmos DB 的功能來 自訂索引原則 。 自訂原則以符合工作負載的效能需求。

優化資料效率:資料分層可讓您根據資料的存取頻率和重要性將資料儲存在不同的層中。 它有助於優化儲存成本和效能。 Azure 提供不同的儲存層,例如 Blob 資料的經常性、非常性存取層和封存層。 經常存取層針對經常存取的資料進行最佳化,非常存取層針對不常存取的資料進行最佳化,而封存層則針對很少存取的資料進行最佳化。 透過使用最適合您資料的儲存存取層,您可以確保有效率的資料儲存和擷取。

效能效率檢查清單

請參閱一組完整的建議。