2015-06-03 32 views
7

Używam skryptu tworzenia kopii zapasowej przy użyciu AWS CLI do wykonywania polecenia synchronizacji S3 każdej nocy na moim serwerze MediaTemple. To działało bez przerwy przez wiele miesięcy, ale zaktualizowałem moją instalację Plesk i teraz każdej nocy, kiedy skrypt kopii zapasowej działa, MediaTemple wyłącza mój serwer z powodu nadmiernego użycia. Granice I wydają się być przejście przedstawiają się następująco:Ograniczanie poleceń S3 za pomocą 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 

Obejmują one również migawkę sieci w czasie biorą trybie offline serwera, który zawiera wiele otwartych połączeń z adresami Amazon IP (9 w czasie migawki).

Czy jest coś, co mogę zrobić, aby zdławić połączenia z AWS? Najlepiej szukam opcji w interfejsie API AWS (choć nie widziałem niczego przydatnego w dokumentacji), ale gdyby nie to, czy jest coś, co mogę zrobić, aby zarządzać połączeniami na poziomie sieci?

Odpowiedz

2

skończyło się używając Trickle i zatykania pobieranie & prędkości wysyłania na 20000 kb/s. Pozwoliło mi to użyć mojego istniejącego skryptu bez większych modyfikacji (wystarczy było dodać wywołanie zwrotne na początku polecenia).

Wygląda również na to, że ograniczanie przepustowości zostało dodane jako problem do AWS CLI, więc mam nadzieję, że to wszystko nie będzie problemem dla ludzi, jeśli zostanie to zaimplementowane.

5

Polecenia transferu AWS CLI S3 (które zawiera sync) mają odpowiednio następujące configuration options:

  • max_concurrent_requests -
    • domyślne: 10
    • Maksymalna liczba równoczesnych żądań.
  • multipart_threshold -
    • Domyślnie: 8MB
    • Próg rozmiar CLI używa do wieloczęściowych transferów poszczególnych plików.
  • multipart_chunksize -
    • Domyślnie: 8MB
    • Przy korzystaniu wieloczęściowe transfery, to jest wielkość kawałek że CLI używa do wieloczęściowe transfery poszczególnych plików.

To nie jest tak jak granulowany dławienia pakietów na sekundę, ale wydaje się, ustawiając mniejszą wartość jednoczesnego żądania i opuszczanie obu wieloczęściowy próg i chunksize pomoże. Jeśli wartości wklejeniu są zbliżone do średniej, chciałbym zacząć od tych wartości i dostosować dopóki nie jesteś wiarygodny nie przekraczając granic już:

$ 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

to naprawdę nie wydaje się moim najlepszym, ale ja nadal konsekwentnie trafienia moje strony ograniczenia gospodarza. Powrót do deski kreślarskiej. Dzięki! – binaryorganic

1

Jeśli nie można uczynić pracę sączyć z poleceniem AWS s3 jak ja, można użyć:

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

gdzie -L 1M ogranicza przepustowość do 1m/s i myślnik po cp wskazać stdin

Uwaga: awscli z apt-get jest zbyt stary, aby wspierać wejście stdin, trzeba uaktualnić go poprzez pip

Powiązane problemy