PERF04-BP05 選擇網路通訊協定以提高效能
根據對工作負載效能的影響,做出系統和網路間通訊協定的決策。
實現輸送量的延遲和頻寬之間存在關係。如果您的檔案傳輸使用傳輸控制協定 (TCP),較高的延遲很可能會降低整體輸送量。有一些方法可以使用 TCP 調校和最佳化的傳輸通訊協定來解決這個問題,但有一個解決方案是利用使用者資料包通訊協定 (UDP))。
常見的反模式:
-
無論效能需求為何,您都可以將 TCP 用於所有工作負載。
建立此最佳實務的優勢:確認針對使用者與工作負載元件之間的通訊使用適當的通訊協定,可協助改善您的應用程式的整體使用者體驗。例如,無連線 UDP 雖然達到高速,但卻失去重新傳輸能力或高可靠性。TCP 是功能完整的通訊協定,但需要更大的額外負荷來處理封包。
未建立此最佳實務時的曝險等級:中
實作指引
如果您有能力為應用程式選擇不同的通訊協定,而且您具備此領域的專業知識,請使用不同的通訊協定來最佳化應用程式和使用者體驗。請注意,這種方法有很大的困難,如果您已先用其他方法最佳化應用程式,才可嘗試。
改善您的工作負載效能的主要考慮是了解延遲和輸送量需求,然後選擇可最佳化效能的網路通訊協定。
何時考慮使用 TCP
TCP 提供可靠的資料交付,並且可用於可靠性和保證資料交付很重要的工作負載元件間通訊。許多 Web 式應用程式仰賴 TCP 型通訊協定,例如 HTTP 和 HTTPS,針對應用程式元件之間的通訊開啟 TCP 通訊端。電子郵件和檔案資料傳輸是也使用 TCP 的常見應用程式,因為它是應用程式元件之間的簡單且可靠的傳輸機制。使用 TLS 與 TCP 會增加一些通訊負擔,導致提高延遲和降低輸送量,但它具有安全性優勢。負擔主要來自交握處理的增加負擔,需要數個往返才能完成。一旦交握完成,加密和解密資料的負擔相對小。
何時考慮使用 UDP
UDP 是無連線導向的通訊協定,因此適用於需要快速、有效傳輸的應用程式,例如日誌、監控和 VoIP 資料。此外,如果您有會回應來自大量用戶端之小型查詢的工作負載元件,請考慮使用 UDP,以確保最佳工作負載效能。資料包傳輸層安全性 (DTLS) 等同於 Transport Layer Security (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) 工作負載,請考慮使用 Elastic Network Adapter (ENA) Express
功能,該功能使用 SRD 通訊協定,透過為 EC2 執行個體之間的網路流量提供更高的單一流量頻寬 (25 Gbps) 和更低的尾延遲 (99.9%) 來改善網路效能。 -
可以使用 Application Load Balancer (ALB),在工作負載元件之間或 gRPC 用戶端與服務之間對 gRPC (遠端程序呼叫) 進行路由和負載平衡。gRPC 使用 TCP 型 HTTP/2 通訊協定進行傳輸,並提供效能優勢,例如更少的網路佔用空間、壓縮、高效的二進位序列化、支援多種語言以及雙向串流。
資源
相關文件:
相關影片:
相關範例: