S3到EC2的传输太慢

时间:2019-07-02 21:42:02

标签: amazon-web-services amazon-s3 amazon-ec2

我正在尝试将大文件(〜1.75GB)从S3移到同一区域的EC2实例。

通过AWS命令行,我可以在大约13秒内完成操作。

aws s3 cp s3://mybucket/myfile.txt ~
来自同一EC2实例的

wget(如果我将文件公开)在34秒内完成。

wget https://mybucket.s3.amazonaws.com/myfile.txt

我通过REST API的应用程序可以以与wget相同的速度下载它。

实例为m5a.2xlarge,应具有“最高10 Gbps”网络。如果我的数学正确,那么10Gbps应该大约是每秒1 GB,那么在2秒之内就能得到文件了?

UPD: speedtest-cli显示为850Mbit / s。

Retrieving speedtest.net server list...
Selecting best server based on ping...
Hosted by BroadAspect (Ashburn, VA) [0.98 km]: 1.387 ms
Testing download speed................................................................................
Download: 850.94 Mbit/s
Testing upload speed......................................................................................................
Upload: 929.41 Mbit/s

UPD2: Enhanced Networking已启用

[ec2-user@ip-172-30-0-196 ~]$ ethtool -i eth0
driver: ena
version: 2.0.2g

UPD3 :尝试了几种其他实例类型。最小/最便宜的ARM a1.medium和i3en.6xlarge(I / O优化,“保证” 25Gbps)

将S3中的1.75GB文件复制到同一区域中的EC2实例的时间:

|instance type|Network Gbps|aws s3 cp|wget|
|-------------|------------|---------|----|
|m5a.2xlarge  |  Up to 10  |   13    | 34 |
|a1.medium    |  Up to 10  |   26    | 34 |
|i3en.6xlarge |     25     |   7.5   | 18 |

有趣的是-切换到IO-优化的实例可以提高传输速度,但仍远不及[文件大小] / [实例Gbps]。

UPD4: AWS S3配置

AWS S3 CLI工具提供了很少的configurations options,例如:

aws configure set default.s3.max_concurrent_requests 10
aws configure set default.s3.multipart_chunksize 8MB

以上数字为默认值。经过一番尝试之后,我发现m5a.2xlarge的最佳组合是3个并发请求,即180MB块大小。这使下载时间降低到9秒或〜204MiB / sec。更好,但与(理论上的)最大值相差甚远。

1 个答案:

答案 0 :(得分:1)

拥有10Gbps并不能保证另一端以这种速度向您发送数据。

current-generation EC2 instance types configured with ENA之前的版本(最高支持S3达到25 Gbps)最大为5 Gbps。

您可以进行其他一些测试,例如EC2到EC2或EC2到speedtest.net(或同等测试)。

顺便说一句,如果您确实要下载1.75GB的文本文件,则压缩会有所帮助。