我正在尝试将大文件(〜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。更好,但与(理论上的)最大值相差甚远。
答案 0 :(得分:1)
拥有10Gbps并不能保证另一端以这种速度向您发送数据。
current-generation EC2 instance types configured with ENA之前的版本(最高支持S3达到25 Gbps)最大为5 Gbps。
您可以进行其他一些测试,例如EC2到EC2或EC2到speedtest.net(或同等测试)。
顺便说一句,如果您确实要下载1.75GB的文本文件,则压缩会有所帮助。