2015-06-03 2 views
7

Я запускаю сценарий резервного копирования с использованием AWS CLI для выполнения команды S3 sync каждую ночь на моем сервере MediaTemple. Это работает без сбоев в течение нескольких месяцев, но я обновил мою установку Plesk и теперь каждую ночь, когда выполняется сценарий резервного копирования, MediaTemple отключает мой сервер из-за чрезмерного использования. Пределы Я, кажется, пересечение следующим образом:Команды Throttling S3 с aws cli

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 (хотя я не видел ничего полезного в документации), но, не допуская этого, есть ли что-то, что я могу сделать на своем конце для управления соединениями на сетевом уровне?

ответ

2

Я закончил с использованием Trickle и укупоркой загрузки & скорости закачивать на 20000 кб/с. Это позволило мне использовать мой существующий скрипт без особых изменений (все, что мне нужно было сделать, это добавить вызов trickle в начало команды).

Кроме того, похоже, что ограничение пропускной способности было добавлено как проблема для AWS CLI, поэтому, надеюсь, все это будет проблемой для людей, если это будет реализовано.

5

Команды передачи АМС CLI S3 (который включает в себя синхронизацию), имеют следующие соответствующие configuration options:

  • max_concurrent_requests -
    • По умолчанию: 10
    • Максимальное количество одновременных запросов.
  • multipart_threshold -
    • По умолчанию: 8MB
    • Пороговый размер консоли используется для многочастных передачи отдельных файлов.
  • 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 
+0

Это действительно кажется, что мой лучший выбор, но я до сих пор постоянно ударился лимиты хозяина. Вернуться к доске для рисования. Благодаря! – binaryorganic

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 указать стандартный ввод

Примечание: awscli от APT-GET слишком стар, чтобы поддержать STDIN ввод, вам необходимо обновить его через пип

Смежные вопросы