AWS Cli下载AWS S3文件速度调优 您所在的位置:网站首页 硬盘测速指令有哪些 AWS Cli下载AWS S3文件速度调优

AWS Cli下载AWS S3文件速度调优

2023-05-05 21:15| 来源: 网络整理| 查看: 265

背景

遇到一个使用AWS Cli进行AWS S3文件下载时速度慢的问题,AWS Cli是运行在Amazon Linux 2上,在AWS VPC里面直接执行aws s3 cp命令时发现下载速度往往只有100多MB/s,似乎并没有跑满AWS EC2的网络带宽和AWS EBS的I/O、吞吐量限制!那么这类问题我们应该怎么排查和优化呢?

解决

考虑点:

AWS VPC的网络设置,建议打开AW S3 Gateway endpoint,这样EC2访问S3的流量就不需要通过NAT或者Internet Gateway走互联网了,而是直接留在VPC里面,这样更快、更稳定、更安全。而且AW S3 Gateway endpoint是免费的 AWS EC2限制:aws ec2的不同的类型有不同的网络带宽上限,详情请看AWS EC2 instance types,EC2的网络带宽都是5Gbps起步,一般可以达到500MB的理论下载速度;最入门的EC2 M5.large的EBS上限最高也有4750Mbps,也能到400M以上。所以绝大多数的非T系列机型的EBS带宽和网络带宽都能保证400MB的速度。 AWS EBS限制:AWS EBS的I/O和吞吐量也取决于我们的EBS磁盘类型和大小,如果我们选择的比较低过个的SSD盘或者吞吐量低的HDD盘,那么写入速度可能受到影响。详情请看AWS EBS volume types AWS Cli版本和配置,这个是最重要的,本次的问题后面发现就是这个原因,后面详细分析

本次的测试环境如下

AWS EC2为t3.large,挂载64GB的AWS EBS,EBS类型为GP2。所以这个EC2的规格比几乎所有的用户的配置都低一些,实际用户的测试环境远比我现在的好。 AWS VPC打开了S3 Gateway Endpoint。 AWS S3存放了5G左右测试文件(每个文件600M左右)做测试,EC2安装的系统为Amazon Linux 2023,附带AWS Cli2。

系统详情:

[ec2-user@ip-172-31-4-254 ~]$ uname -a Linux ip-172-31-4-254.cn-northwest-1.compute.internal 6.1.25-37.47.amzn2023.x86_64 #1 SMP PREEMPT_DYNAMIC Mon Apr 24 23:20:16 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux [ec2-user@ip-172-31-4-254 ~]$ aws --version aws-cli/2.9.19 Python/3.9.16 Linux/6.1.25-37.47.amzn2023.x86_64 source/x86_64.amzn.2023 prompt/off 复制代码

如果我们直接进行测试速度如下,大约160M/S image.png

如果我们分析原因,发现网络和EBS磁盘限制还没到,可以尝试继续分析原因,发现主要原因在AWS Cli配置。AWS Cli下载S3文件的速度主要问题在如下方面:

如果你使用Amazon Linux 2,默认安装的是AWS Cli v1版本,这个版本比较老旧,首先你可以升级到AWS Cli2,详情请见: 如果你使用Amazon Linux 2023,那么默认安装的是AWS Cli2;或者你现在的Linux是使用AWS Cli2,那么我们接着可以做如下的优化,详情见s3-config和# aws s3 slow upload/download speed for bigfiles 设置AWS Cli2 多线程下载:max_concurrent_requests可以设置为16或者更高一点 设置AWS Cli2 的preferred_transfer_client,让Cli内置的Python性能得到提升 设置max_bandwidth,multipart_threshold,multipart_chunksize

最后的详细设置如下

[default] region = cn-northwest-1 output = json s3 = max_concurrent_requests = 32 max_queue_size = 10000 multipart_threshold = 64MB multipart_chunksize = 16MB max_bandwidth = 500MB/s preferred_transfer_client = crt 复制代码

image.png

调整好后,我们继续测试,发现速度达到了310MB/s(其实观察到的最高速度有350+MB/s,换用其他更好的EC2和更好的磁盘轻松达到600+MB/S) image.png



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有