PERF05-BP05 選擇網路通訊協定以提高效能
評估您的工作負載的效能要求,並且選擇可最佳化您的工作負載整體效能的網路通訊協定。
實現輸送量的延遲和頻寬之間存在關係。例如,如果您的檔案傳輸使用傳輸控制協定 (TCP),較高的延遲會降低整體輸送量。有一些方法可以使用 TCP 調校和最佳化的傳輸通訊協定來解決這個問題 (有些方法則會使用使用者資料包協定 (UDP))。
可擴展可靠資料包 (SRD)
常見的反模式:
-
無論效能需求為何,都可以將 TCP 用於所有工作負載。
建立此最佳實務的優勢:
-
為工作負載元件之間的通訊選擇適當的通訊協定,便可確保達到該工作負載的最佳效能。
-
確認針對使用者與工作負載元件之間的通訊使用適當的通訊協定,可協助改善您的應用程式的整體使用者體驗。例如,藉由同時使用 TCP 和 UDP,VDI 工作負載可以針對關鍵資料利用 TCP 的可靠性,針對即時資料利用 UDP 的速度。
未建立此最佳實務時的曝險等級:中 (使用不適當的網路通訊協定會導致效能不佳,例如緩慢的回應時間、高延遲和可擴展性不佳)
實作指引
改善您的工作負載效能的主要考慮是了解延遲和輸送量要求,然後選擇可最佳化效能的網路通訊協定。
考慮使用 TCP 的時機
TCP 提供可靠的資料交付,並且可用於可靠性和保證資料交付很重要的工作負載元件間通訊。許多 Web 式應用程式仰賴 TCP 型通訊協定,例如 HTTP 和 HTTPS,針對與 AWS 上的伺服器的通訊開啟 TCP 通訊端。電子郵件和檔案資料傳輸是也會使用 TCP 的常見應用程式,原因是 TCP 控制資料交換率和網路壅塞的能力。使用 TLS 與 TCP 會對通訊增加一些負擔,導致提高延遲和降低輸送量。負擔主要來自交握處理的增加負擔,需要數個往返才能完成。一旦交握完成,加密和解密資料的負擔相對小。
考慮使用 UDP 的時機
UDP 是無連線導向的通訊協定,因此適用於需要快速、有效傳輸的應用程式,例如日誌、監控和 VoIP 資料。此外,如果您有會回應來自大量用戶端之小型查詢的工作負載元件,請考慮使用 UDP,以確保最佳工作負載效能。資料包傳輸層安全性 (DTLS) 是等同於 TLS 的 UDP。使用 DTLS 與 UDP 時,負擔是來自加密和解密資料,因為交握處理已簡化。DTLS 也會對 UDP 封包增加小量負擔,因為它包含額外欄位以指出安全參數以及偵測竄改。
考慮使用 SRD 的時機
Scalable Reliable Datagram (SRD) 是針對高輸送量工作負載最佳化的網路傳輸通訊協定,因為它能夠在多個路徑之間負載平衡流量,並且快速從封包捨棄或連結失敗復原。因此 SRD 最適合用於需要運算節點之間高輸送量和低延遲通訊的高效能運算 (HPC) 工作負載。這可能包含平行處理任務,例如牽涉到在節點之間大量資料傳輸的模擬、建模和資料分析。
實作步驟
-
使用 AWS Global Accelerator
和 AWS Transfer Family 服務來改善您的線上檔案傳輸應用程式的輸送量。AWS Global Accelerator 服務可協助您達成用戶端裝置與 AWS 上工作負載之間的較低延遲。使用 AWS Transfer Family,您可以使用 TCP 型通訊協定,例如 Secure Shell File Transfer Protocol (SFTP) 和 File Transfer Protocol over SSL (FTPS),安全地擴展和管理您對於 AWS 儲存服務的檔案傳輸。 -
使用網路延遲來判斷 TCP 是否適合工作負載元件之間的通訊。如果您的用戶端應用程式與伺服器之間的網路延遲高,則 TCP 三向交握會耗費一些時間,因此會影響您的應用程式的回應能力。例如到第一個位元組的時間 (TTFB) 和往返時間 (RTT) 等指標可用來測量網路延遲。如果您的工作負載為使用者提供動態內容的服務,請考慮使用 Amazon CloudFront
,這會建立與每個動態內容來源的持久性連線,消除會減緩每個用戶端請求的連線設定時間。 -
使用 TLS 與 TCP 或 UDP 會由於加密和解密的影響,導致對您的工作負載增加延遲和減少輸送量。針對此類工作負載,請考慮 Elastic Load Balancing
上的 SSL/TLS 卸載,藉由允許負載平衡器處理 SSL/TLS 加密和解密程序而不是讓後端執行個體進行處理,來改善工作負載效能。這可協助減少後端執行個體上的 CPU 使用率,可以改善效能和增加容量。 -
使用 Network Load Balancer (NLB)
來部署依賴 UDP 通訊協定的服務,例如身分驗證和授權、記錄、DNS、IoT 和串流媒體,改善您的工作負載的效能和可靠性。NLB 會在多個目標之間分散傳入 UDP 流量,讓您水平地擴展工作負載、增加容量以及減少單一目標的負擔。 -
針對您的高效能運算 (HPC) 工作負載,請考慮使用彈性網路介面卡 (ENA) 快速版
功能,該功能使用 SRD 通訊協定來改善網路效能,方法是針對 EC2 執行個體之間的網路流量提供較高的單一流量頻寬 (25Gbps) 和較低的尾端延遲 (99.9 百分位數)。 -
使用 Application Load Balancer (ALB) 來路由和負載平衡工作負載元件之間的 gRPC (遠端程序呼叫) 流量或已啟用 gRPC 的用戶端與服務之間的流量。gRPC 會使用 TCP 型 HTTP/2 通訊協定進行傳輸,並且提供如較輕網路足跡、壓縮、有效二進位序列化、支援多種語言和雙向串流的優點。
資源
相關文件:
相關影片:
相關範例: