使用aws cli限制S3命令

bin*_*nic 14 amazon-s3 amazon-web-services aws-cli

我正在使用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
Run Code Online (Sandbox Code Playgroud)

它们还包括服务器脱机时的网络快照,其中包括许多与Amazon IP地址的打开连接(快照时为9).

我可以做些什么来限制与AWS的连接?我最好在AWS API中寻找一个选项(虽然我没有在文档中看到任何有用的东西),但除此之外,我能在我的网络级管理连接吗?

phi*_*hil 11

除了更改最大默认连接数和块大小之外,您还可以设置max_bandwidth。上传大的单个文件时,这非常有效。

aws configure set default.s3.max_bandwidth 50MB/s


Ant*_*ace 10

AWS CLI S3传输命令(包括同步)具有以下相关配置选项:

  • max_concurrent_requests -
    • 默认值:10
    • 最大并发请求数.
  • multipart_threshold -
    • 默认值:8MB
    • CLI用于单个文件的多部分传输的大小阈值.
  • 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
Run Code Online (Sandbox Code Playgroud)


bin*_*nic 2

我最终使用了Trickle,并将下载和上传速度限制在 20,000 kb/s。这让我可以使用现有的脚本而无需进行太多修改(我所要做的就是将trickle 调用添加到命令的开头)。

此外,带宽限制似乎已作为一个问题添加到 AWS CLI 中,因此希望如果实施的话,这对人们来说将不再是问题。