我使用AWS CLI运行备份脚本,每晚在MediaTemple服务器上执行S3同步命令。这已经运行了好几个月,但我更新了我的Plesk安装,现在每天晚上,当备份脚本运行时,MediaTemple由于过度使用而禁用我的服务器。我似乎要越过的限制如下:
RESOURCE INFO:
Packets per second limit: 35000
Packets per second detected: 42229.11667000000306870788
Bytes per second limit: 50000000
Bytes per second detected: 61801446.10000000149011611938
它们还包括服务器脱机时的网络快照,其中包括许多与Amazon IP地址的打开连接(快照时为9)。
我能做些什么来限制与AWS的连接?我最好在AWS API中寻找一个选项(虽然我没有在文档中看到任何有用的东西),但除此之外,我能做些什么来管理网络上的连接水平?
答案 0 :(得分:7)
AWS CLI S3传输命令(包括同步)具有以下相关configuration options:
- max_concurrent_requests -
- 默认值:10
- 最大并发请求数。
- multipart_threshold -
- 默认值:8MB
- CLI用于multipart的大小阈值 传输单个文件。
- multipart_chunksize -
- 默认值:8MB
- 使用时 多部分传输,这是CLI用于的块大小 单个文件的多部分转移。
这并不像每秒限制数据包一样精细,但似乎设置较低的并发请求值并降低多部分阈值和chunksize将有所帮助。如果您粘贴的值接近平均值,我会从这些值开始并进行调整,直到您再次可靠地不超过限制为止:
$ aws configure set default.s3.max_concurrent_requests 8
$ aws configure set default.s3.multipart_threshold 6MB
$ aws configure set default.s3.multipart_chunksize 6MB
答案 1 :(得分:5)
除了更改最大默认连接和块大小之外,您还可以设置max_bandwidth。这在上传大型单个文件时非常有效。
aws configure set default.s3.max_bandwidth 50MB/s
答案 2 :(得分:2)
我最终使用Trickle并限制下载&上传速度为20,000 kb / s。这让我可以使用我现有的脚本而不需要太多修改(我所要做的只是将涓涓细流调用添加到命令的开头)。
此外,看起来带宽限制已经作为一个问题添加到AWS CLI,所以希望如果实现这一点,这对于那些人来说都不是问题。
答案 3 :(得分:1)
如果你不能像我一样使用aws s3命令进行涓流工作,你可以使用:
sudo apt-get install pv (or yum install pv)
pv -L 1M local_filename 2>/dev/null | aws s3 cp - s3://bucket_name/remote_filename
其中-L 1M将带宽限制为1M / s
和cp
后面的短划线表示标准输入
注意:来自apt-get的awscli太旧不支持stdin输入,你需要通过pip升级它
答案 4 :(得分:0)
我无法使用aws-cli进行细流操作,但是遇到了s3cmd,这对我来说非常有用。它具有速率限制选项。可以在Fedora仓库中找到它,我想其他发行版也都打包了它。
s3cmd --progress --stats --limit-rate=50k sync ./my_photos/ s3://mybucket