適用於此 Azure Well-Architected Framework 效能效率檢查清單建議:
| 體育:09 | 優先考慮關鍵流程的效能。 工作負載資源的配置和效能最佳化工作應該優先處理支援最重要商務程序、使用者和作業的流程。 |
|---|
本指南說明工作負載中重要流程效能優先順序的建議。 關鍵流程代表產生收入或推動高優先級營運的關鍵業務流程。 當您排定重要流程效能的優先順序時,您可以確保影響最大的流程在優先順序較低的流程之前獲得所需的資源。 如果不進行此優先順序排序,可能會對工作負載優先順序和使用者體驗產生不成比例的負面影響。
定義
| 術語 | Definition |
|---|---|
| Flow | 在工作負載中,執行特定功能的動作順序。 流程涉及資料的移動,以及工作負載元件之間的處理程序執行。 |
| 優先順序佇列處理 | 在低優先順序任務之前處理高優先順序任務的行為。 |
| 速率限制 | 限制可以存取資源的請求數的動作。 |
| 系統流程 | 系統內的資訊和流程的流動。 系統會自動遵循此流程,以啟用使用者流程或工作負載功能。 |
| 使用者流程 | 使用者完成任務所遵循的順序。 |
關鍵流程是指客戶或對工作負載功能至關重要的作業的系統和資料流程。 這些流程可以包括使用者註冊、登入、產品購買、存取付費專區後方的頁面,或工作負載內的任何其他重要路徑或程式等動作。
關鍵流程會顯著影響使用者體驗或業務營運。 重要流程比非關鍵流程具有更高的效能目標和服務等級協定。 在資源有限的情況下,非重要流程應該將資源使用量讓給重要流程。 在隔離和最佳化關鍵流程之前,您需要識別、監控所有流程並確定其優先順序。
識別所有流程
排定重要流程效能優先順序的第一步是識別工作負載中的所有流程。 流程識別涉及系統地映射和理解每個使用者路徑和元件通訊。 重點是了解效能指標以及流程對工作負載效能的潛在影響。
透過將工作負載分解為離散流程,您可以找到效能瓶頸、低效率的資源利用率以及效能最佳化的機會。 這些知識揭示了需要改進的領域,並且是識別關鍵流程的第一步。 如需詳細資訊,請參閱 識別和評估使用者和系統流程。
監控流程效能指標
識別工作負載中的所有流程之後,您需要收集每個流程的效能指標,並監控這些指標。 流量指標可讓您深入瞭解回應時間、錯誤率和輸送量。 目標是持續觀察和記錄效能相關指標,以進一步完善您對每個流程對工作負載效能影響的理解。 若要監控流量指標,您可以使用下列工具來收集資料:
分析和追蹤工具:這些工具可以深入了解應用程式內的使用者行為和互動。 透過分析使用者資料,您可以識別最常見的流程、瓶頸或潛在問題。
應用程式效能監控 (APM) 工具:使用 APM 工具監控應用程式的效能並追蹤流程的運作方式。 這些工具提供對回應時間、錯誤和其他效能指標的可見性,使您能夠識別關鍵流程並優化其效能。
記錄和偵錯工具:使用這些工具在應用程式執行時擷取和分析日誌和偵錯資訊。 檢閱日誌和偵錯資訊,以追蹤流程的執行方式,並識別問題或錯誤。
識別重要流程
有了可用的效能資料,您就可以開始對所有流程進行排名,並識別關鍵流程。 關鍵流程的識別涉及評估每個流程的效能影響和關鍵性。 有效的流程優先順序可確保最重要的流程在不太重要的流程之前收到所需的資源。 若要排定應用程式中的流程優先順序,請考慮下列步驟:
識別業務影響:首先評估營運中每個流程的重要性。 專注於每個流程如何與您的業務目標保持一致、它對使用者的影響以及效能不佳的潛在負面影響。 例如,雖然免費服務層可能會吸引更多用戶,但付費層對於您的業務目標可能更重要。
此外,請考慮跨一或多個業務流程的流程對效能的影響。 多個流程可能支援單一商業程序,但通常,一個流程會對該程序的效能產生重大影響。 您想要識別對效能影響最大的流程。 相反地,單一流程可能會支援多個程式。 在這種情況下,此流程的效能會直接影響所有相關流程的效能,而且可能是關鍵流程。
分析效能資料:分析與每個流程相關聯的效能指標。 尋找可以深入了解流程效率和重要性的模式、異常或突出指標。 例如,具有大量使用量的系統流程可能是重要的流程。
指派重要性評等:根據業務影響和效能指標,您應該排定流程的優先順序。 使用 「高」、「 中」和 「低」的嚴重性評等。 具有重大業務影響或高效能需求的流量應獲得「高」關鍵性評等。 這些流程是您的關鍵流程。 專注於具有高使用者流量或對創收有直接影響的流程。 下表提供嚴重 (高) 和非嚴重流量 (中 到 低) 的特性。
| 重要流程 | 非重要流程 |
|---|---|
| 高使用率 | 使用率低 |
| 關鍵業務 | 不關鍵業務 |
| 昂貴的操作 | 小型營運 |
| 時效性 | 不時效 |
| 生產 | 前期製作 |
| 即時處理 | 批次處理 |
| 延遲敏感 | 對延遲不敏感 |
| 付費用戶 | 非付費用戶 |
| 高階層 | 基本層 |
| 重要任務 | 非必要任務 |
| 高收入帳戶 | 低收入帳戶 |
隔離重要流程
隔離重要流量的程序是關於提供專用資源或容量來支援關鍵流量。 您想要將資源和注意力配置給那些對於最佳使用者體驗或重要業務成果至關重要的流程。 目標是確保關鍵流獲得足夠的運算能力、網路頻寬和資源,以有效率且有效地運作。 透過隔離重要流程,您可以更輕鬆地管理支援重要流程的資源。 以下是隔離重要流程的建議:
資源分割:為關鍵流程建立單獨的資源,使它們能夠獨立運作,不受其他進程的干擾。 例如,您可以隔離專用網路區段上的重要流程,或使用專用伺服器來處理這些流程的處理需求。 此方法有助於將非重要流量對關鍵流量的負面影響降到最低。
邏輯分段:使用 Docker 或 Kubernetes 等虛擬化和容器化工具在軟體層級隔離流程。 您可以將重要流程分隔到虛擬機器 (VM) 中。 透過這樣做,您可以建立一個隔離的環境,減少依賴關係和其他流程的潛在干擾。
容量配置:對於關鍵流程,明確配置一組固定的容量,例如 CPU、記憶體和磁碟 I/O。 此配置可確保關鍵流程始終有足夠的資源來有效運作。 使用協調流程平台設定資源配額或限制。 透過明確將資源配置給關鍵流程,您可以防止資源爭用並排定其執行方式的優先順序。
取捨:資源區隔會影響成本。 當您將資源專用於流程時,通常會增加成本,並讓某些資源未充分利用。 為了證明關鍵流程的效能增強是合理的,業務影響的增加必須超過成本的增加。
最佳化容量配置
當您無法隔離重要流量時,下一個最佳選擇是在存取可用容量時排定重要流量的優先順序。 容量配置的最佳化是根據可用容量的重要性策略性地將可用容量分配給不同的流程。 容量包括CPU、記憶體、儲存和網路頻寬。 目標是確保最關鍵的流程(最高優先順序)獲得有效運作所需的容量。 若要決定如何配置容量,請考慮下列策略:
評估資源容量:評估可以配置給流程的資源容量。 容量可能包括 CPU、記憶體、儲存和網路頻寬等資源。 了解基礎設施或環境的限制和約束。
分析流程需求:分析每個流程的資源需求。 瞭解流程有效運作所需的資源。 針對每個流程,識別資源需求,例如 CPU 使用率、記憶體需求和網路頻寬。
排定分配的優先順序:將可用資源容量與流程的資源需求相匹配。 根據流程優先順序分配資源,確保優先順序較高的流程獲得滿足其需求的必要資源。 了解最嚴格的限制在哪裡,並在需要的地方優化容量分配。 例如,佇列每分鐘只能處理一些訊息,但某些儲存限制很難達到。
使用速率限制:若要確保關鍵流程可以耗用滿足其效能目標所需的資源,請將速率限制套用至非關鍵流程和任務。 速率限制限制了優先順序較低的流程和使用者可以對受限資源提出的要求數量。 例如,您可以將非優先順序請求限制為 API。 如需詳細資訊,請參閱 速率 限制模式 和 .NET 中的 HTTP 處理常式速率限制。
使用優先級佇列處理:優先級佇列處理會為某些請求提供高優先級。 佇列通常具有先進先出 (FIFO) 結構,但您可以更新應用程式,為新增至佇列的訊息指派優先順序。 使用此功能來排定重要流程和使用者的優先順序。 如需詳細資訊,請參閱 優先 順序佇列模式。
風險:平衡關鍵流程的需求與工作負載的整體效能可能是一項挑戰。 雖然您應該排定重要流程的優先順序,但不應忽略非關鍵流程。 工作負載的整體效能效率取決於所有流程。 忽略的非重要流程可能會產生影響所有使用者的問題。 非必需品的噪音過多會搶走關鍵物品的注意力。 但噪音太少可能會損害整個工作負載。 資料量和警示數量應反映這些平衡的優先順序。
Azure 促進
識別和監視流程:Azure 提供不同的解決方案來協助您監視工作負載中重要流程的效能。 Azure 監視器、Azure 監視器記錄和 Azure 應用程式深入解析是一些服務,可為數種類型的應用程式和工作負載提供完整的監視功能。
最佳化容量配置:某些 Azure 服務支援資源分割、邏輯分割和容量配置技術,將容量和資源配置給關鍵流程。 您可以透過建立個別資源、增加密度、使用虛擬化和容器化,以及明確將資源配置給重要流程等技術來隔離關鍵流程。
某些 Azure 服務,例如 Azure API 管理 ,提供速率限制的內建原則。 Azure 提供速率 限制設計模式的詳細指引和範例實作。
Azure 支援優先順序佇列處理。 Azure Functions 提供事件驅動函式,您可以以各種方式觸發這些函式,包括佇列或主題中的新訊息。 將 Azure Functions 與 Azure 佇列儲存體或 Azure 服務匯流排 結合,以根據訊息的優先順序來處理訊息。
相關連結
效能效率檢查清單
請參閱完整的建議集。