PERF02-BP02 了解可用的運算組態選項 - AWS Well-Architected 架構

PERF02-BP02 了解可用的運算組態選項

每個運算解決方案都有選項和組態,可供您支援工作負載特性。了解各種選項如何與您的工作負載互補,以及哪種組態選項最適合您的應用程式。這些選項的範例包括執行個體系列、大小、功能 (GPU、I/O)、爆量、逾時、函數大小、容器執行個體,以及並行。

預期成果: 包括 CPU、記憶體、網路輸送量、GPU、IOPS、流量模式和資料存取模式的工作負載特性會加以記錄,並用來設定運算解決方案以符合工作負載特性。其中每一個指標以及工作負載特有的自訂指標都會加以記錄、監控,然後用來優化運算組態以最好地符合要求。

常用的反模式:

  • 使用正用於內部部署的同一運算解決方案。

  • 未審查運算選項或執行個體系統以符合工作負載特性。

  • 使運算變得更大以確保爆量功能。

  • 您針對相同的工作負載使用多個運算管理平台。

建立此最佳實務的優勢: 熟悉 AWS 運算方案,才能為每個工作負載確定合適的解決方案。為工作負載選取運算方案之後,您可以快速試驗這些運算方案,以判斷其符合工作負載需求的程度。為符合工作負載特性而優化的運算解決方案將提高效能、降低成本並提升可靠性。

若未建立此最佳實務,暴露的風險等級:

實作指引

如果您的工作負載已使用相同的運算選項超過四週,並且您預計特性未來仍將保持不變,您可以使用 AWS Compute Optimizer 根據運算特性提供一個建議。如果 AWS Compute Optimizer 不是選項,起因於缺少指標、 非支援的執行個體類型 或特性中可預測的變更,則您必須根據負載測試和試驗預測指標。 

實作步驟:

  1. 您是否正在具有 EC2 啟動類型的 EC2 執行個體或容器上執行?

    1. 您的工作負載是否可以使用 GPU 提升效能?

      1. 加速運算 執行個體是 GPU 型執行個體,可為機器學習培訓、推斷和高效能運算提供最高效能。

    2. 您的工作負載是否執行機器學習推斷應用程式?

      1. AWS Inferentia (Inf1) — Inf1 執行個體專為支援機器學習推斷應用程式所建置。客戶可使用 Inf1,執行大型規模的機器學習推斷應用程式,例如影像辨識、語音辨識、自然語言處理、個人化以及詐騙偵測。您可以在 TensorFlow、PyTorch 或 MXNet 等其中一個常用機器學習架構中建立模型,並使用 GPU 執行個體來訓練模型。將機器學習模型訓練到符合需求之後,您可以使用 AWS Neuron在 Inf1 執行個體上部署模型,AWS Neuron 是一種專業的軟體開發套件 (SDK),其中包含編譯器、執行時間和分析工具,可將 Inferentia 晶片的機器學習推斷效能優化。

    3. 您的工作負載是否與低階硬體整合以改進效能? 

      1. 可現場程式化閘道陣列 (FPGA) — 使用 FPGA,您可以為要求最高的工作負載自訂硬體加速執行,進而優化您的工作負載。您可以利用支援的通用程式設計語言 (例如 C 或 Go),或以硬體為導向的語言 (例如 Verilog 或 VHDL) 來定義演算法。

    4. 您是否有至少四週的指標,並且可以預測您的流量模式和指標在未來仍大致相同?

      1. 使用 Compute Optimizer 取得哪個運算組態最符合運算特性的機器學習建議。

    5. 您的工作負載效能是否受到 CPU 指標限制? 

      1. 運算優化 執行個體非常適合於需要高效處理器的工作負載。 

    6. 您的工作負載效能是否受到記憶體指標限制? 

      1. 記憶體優化 執行個體會提供大量記憶體,以支援記憶體密集工作負載。

    7. 您的工作負載效能是否受到 IOPS 限制?

      1. 儲存優化 執行個體專為需要對本機儲存進行高循序讀寫存取 (IOPS) 的工作負載而設計。

    8. 您的工作負載特性是否代表所有指標之間的平衡需求?

      1. 您的工作負載 CPU 是否需要爆量,以處理流量中的峰值?

        1. 高載效能 執行個體類似於運算優化執行個體,不同之處在於它們可讓您突破運算優化執行個體中所識別的固定 CPU 基準。

      2. 一般用途 執行個體提供所有特性的平衡,以支援各種工作負載。

    9. 您的運算執行個體是否正在 Linux 上執行,並受到網路介面卡上的網路輸送量限制?

      1. 檢閱 效能問題 5、最佳實務 2:評估可用的聯網功能 來找出正確的執行個體類型和系統,以符合您的効能需求。

    10. 在您承諾使用一年的特定可用區域中,您的工作負載是否需要一致且可預測的執行個體? 

      1. 預留執行個體 確認特定可用區域中的容量保留。預留執行個體非常適合於特定可用區域中所需的運算能力。 

    11. 您的工作負載是否具有需要專用硬體的授權?

      1. 專用主機 支援現有的軟體授權,並協助您滿足合規需求。

    12. 您的運算解決方案是否會爆量且需要同步處理?

      1. 隨需執行個體 可讓您按小時或秒使用運算容量,無需長期承諾。這些執行個體適合於超過效能基準需求的爆量。

    13. 您的運算解決方案為無狀態、容錯和非同步嗎? 

      1. Spot 執行個體 可讓您針對無狀態、容錯工作負載利用未用的執行個體容量。 

  2. 您是否正在將容器執行於 Fargate

    1. 您的任務效能是否受到記憶體或 CPU 限制?

      1. 使用 任務大小 調整您的記憶體或 CPU。

    2. 您的效能是否正受到流量模式爆量限制?

      1. 使用 Auto Scaling 組態來比對您的流量模式。

  3. 您的運算解決方案是否位於 Lambda

    1. 您是否有至少四週的指標,並且可以預測您的流量模式和指標在未來仍大致相同?

      1. 使用 Compute Optimizer 取得哪個運算組態最符合運算特性的機器學習建議。

    2. 您沒有足夠的指標來使用 AWS Compute Optimizer 嗎?

      1. 如果您沒有可供 Compute Optimizer 使用的指標,請使用 AWS Lambda Power Tuning 協助選取最佳組態。

    3. 您的函數效能是否受到記憶體或 CPU 限制?

      1. 設定您的 Lambda 記憶體 來符合您的效能需求指標。

    4. 您的函數在執行時是否逾時?

      1. 變更 逾時設定

    5. 您的函數效能是否受到活動和並行爆量限制? 

      1. 設定 並行設定 來符合您的效能要求。

    6. 您的函數是否以非同步方式執行,並在重試時失敗?

      1. 在 非同步組態 設定中設定最長事件保留期限和最多重試次數限制。

實作計劃的工作量: 

若要建立此最佳實務,您必須注意目前運算特性和指標。收集這些指標、建立基準,然後使用這些指標來識別理想的運算選項為 中等 工作量。這最好由負載測試和試驗進行驗證。

資源

相關文件:

相關影片:

相關範例: