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