跳至內容

如何對從內部部署用戶端下載或上傳資料到 Amazon S3 時,發生的速度緩慢或不一致問題進行疑難排解?

2 分的閱讀內容
0

當我在 Amazon Simple Storage Service (Amazon S3) 和特定網路或內部部署用戶端之間下載或上傳資料時,遇到延遲的情況。

解決方法

若要識別並解決下載或上傳至 Amazon S3 時的延遲問題,請檢閱下列組態。

發出請求之用戶端的位置

最佳做法是使用地理位置盡量靠近本機用戶端的 Amazon S3 儲存貯體。當儲存貯體在地理位置上距離請求較遠時,回應時間會更長。

若要測試用戶端與 S3 儲存貯體之間的地理距離影響,請完成下列步驟:

  1. 在與儲存貯體相同的 AWS 區域中啟動 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體
  2. 在不同的區域中啟動另一個執行個體。
  3. 使用兩個執行個體上傳和下載相同的檔案。
  4. 比較兩個區域之間的輸送量

若要縮短本機用戶端與 S3 儲存貯體之間的距離,請將資料移至距離用戶端較近區域的儲存貯體中。您可以設定跨區域複寫 (CRR),將來源儲存貯體中的資料複寫到新區域中的目的地儲存貯體。或者,將用戶端遷移到更接近 S3 儲存貯體的位置。

本機用戶端的 ISP

檢閱您的網路路徑是否有封包遺失、跳轉數過多、其他網際網路服務供應商 (ISP) 相關問題、TCP 重新傳輸、SSL 信號交換失敗、DNS 解析延遲或網路 Proxy 等情況。

若要確定可能的封包遺失以及傳送到遠端主機的封包延遲情況,請使用 mtrtraceroute 等工具。這些工具還可以識別是否有網路跳轉導致較高的延遲。例如,下列 Linux traceroute 命令會使用 TCP 連接埠 80 來測試與 us-west-2 (俄勒岡) 區域端點的連線能力:

sudo traceroute -P TCP -p 80 s3.us-west-2.amazonaws.com

如果是 Windows 作業系統 (OS),請執行下列 tracert 命令:

$ tracert -d -4 s3.amazonaws.com

**注意:**許多網路裝置不會回應網際網路控制訊息通訊協定 (ICMP)。對於類似於 Amazon S3 請求的測試,請執行 TCP traceroutemtr 至儲存貯體的區域端點。

如果從用戶端到 Amazon S3 的網際網路路由並未處於最佳狀況,請對 Amazon CloudFront 中的邊緣節點使用 Amazon S3 Transfer Acceleration。使用 Amazon S3 Transfer Acceleration Speed Comparison 工具來判斷 Transfer Acceleration 是否可以提高效能。

**注意:**如果您開啟 Transfer Acceleration,則可能會產生額外的資料傳輸費用。請檢閱 Amazon S3 資料傳輸的定價

本機用戶端的網路

若要確認本機用戶端網路狀況是否良好,請檢閱內部封包檢查、防毒掃描或網路存取管理。另外,請檢閱用戶端或應用程式如何處理 DNS 解析和快取。最佳做法是不要長時間快取 DNS 解析

若要識別 Amazon S3 同步傳輸速度緩慢的內部部署用戶端延遲和效能問題,請使用網路診斷測試。最佳做法是定期分析效能,以便在問題影響傳輸速度之前,偵測潛在問題。

**注意:**最佳做法是使用 AWS PrivateLink for Amazon S3 來提高安全性,並實現更可靠的資料傳輸。

用戶端的資源

由於發出請求的主機處理請求和回應的方式,您的應用程式可能會遇到延遲。最佳做法是避免主機內部發生資源爭用。例如,資源爭用可能與 CPU、記憶體或網路頻寬有關。

若要檢查資料傳輸期間的資源使用情況,請使用資源監視器或 top 命令等工具。如需詳細資訊,請參閱 Microsoft Learn 網站上的資源監視器

**注意:**工具可用性取決於您的作業系統。

對用戶端儲存裝置進行讀取或寫入作業時如果出現延遲,則會影響從 Amazon S3 下載或上傳的效能。若要從用戶端對儲存裝置的 IOPS 進行疑難排解,請使用 FirstByteLatency Amazon CloudWatch 指標來分析 Amazon S3 效能。

**注意:**AWS 依照與自訂 CloudWatch 指標相同的費率對 Amazon S3 請求指標進行計費。有關 CloudWatch 定價的資訊,請參閱 Amazon CloudWatch 定價

Amazon S3 的請求率

根據預設,S3 儲存貯體每個分區前置詞每秒可支援數千個請求。如果用戶端從 Amazon S3 收到 HTTP 5xx 錯誤回應,則表示已超過每個前置詞支援的請求速率。若要對 5xx 錯誤進行疑難排解,請參閱如何對 Amazon S3 的 HTTP 500 或 503 錯誤進行疑難排解?

若要加快 AWS 全球分散式 CloudFront 邊緣節點的傳輸時間,請使用 Amazon S3 Transfer Acceleration。

若要改善網路組態並提升傳輸效能,請使用 AWS Direct Connect。如需詳細資訊,請參閱改善 AWS 和混合網路的效能

如需改善效能的設計模式,請參閱 Amazon S3 的效能設計模式。您可以使用 AWS DataSyncAWS SnowballAWS SnowconeAWS Transfer Family 將大型資料集遷移到 Amazon S3。或者,您可以使用 AWS SDKs 和 AWS Command Line Interface (AWS CLI) 來建立高效的平行和批次傳輸程序。若要對大型檔案使用分段上傳,請參閱如何在使用 AWS CLI 將大型檔案上傳至 Amazon S3 時最佳化效能?

用於判斷周轉時間的 Amazon S3 伺服器存取日誌

若要查看周轉時間指標,請開啟 Amazon S3 伺服器存取日誌記錄。有關周轉時間指標的更多資訊,請參閱 Amazon S3 伺服器存取日誌格式周轉時間。使用周轉時間指標來確定操作所需的時間。接著,您可以評估 Amazon S3 之外的其他延遲因素,這些因素可能會導致下載或上傳速度變慢。

如果延遲高於預期,最佳做法是重試請求,而不是等待請求完成。如需詳細資訊,請參閱 Amazon S3 的效能準則

檔案傳輸活動

使用 TotalRequestLatency 指標來追蹤從 S3 儲存貯體接收到的第一個位元組,到本機用戶端傳送到儲存貯體最後一個位元組的每個請求所花費的時間。若要確定潛在的效能問題,請查看 GetRequestsPutRequests 指標,以及 4xx 和 5xx 狀態代碼。

**注意:**AWS 會依照與 Amazon CloudWatch 自訂指標相同的費率,對 GetRequestsPutRequests 指標進行計費。

相關資訊

CloudWatch 中的 Amazon S3 請求指標

如何使用 AWS CLI sync 命令來提高 Amazon S3 的資料傳輸效能?

AWS 官方已更新 7 個月前