2015-06-03 11 views
7

Sto eseguendo uno script di backup utilizzando la CLI di AWS per eseguire un comando S3 sync ogni sera sul mio server MediaTemple. Questo ha funzionato senza problemi per mesi, ma ho aggiornato l'installazione di Plesk e ora ogni notte, quando viene eseguito lo script di backup, MediaTemple disabilita il mio server a causa dell'uso eccessivo. I limiti Mi sembra di essere di attraversamento sono i seguenti:Comandi Throttling S3 con 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 

Esse comprendono anche una fotografia di rete nel momento in cui prendono la linea di server che comprende molte connessioni aperte a indirizzi Amazon IP (9 al momento dello snapshot).

C'è qualcosa che posso fare per limitare le connessioni ad AWS? Preferibilmente sto cercando un'opzione all'interno dell'API AWS (anche se non ho visto nulla di utile nella documentazione), ma a parte questo, c'è qualcosa che posso fare per gestire le connessioni a livello di rete?

risposta

2

ho finito per usare Trickle e tappatura scaricare & velocità di upload a 20.000 kb /S. Questo mi permette di usare il mio script esistente senza molte modifiche (tutto ciò che dovevo fare era aggiungere la chiamata di trickle all'inizio del comando).

Inoltre, sembra che la limitazione della larghezza di banda sia stata aggiunta come problema alla CLI di AWS, quindi si spera che tutto ciò non costituirà un problema per la gente se verrà implementato.

5

I comandi di trasferimento AWS CLI S3 (che comprende sincronizzazione) hanno i seguenti rilevanti configuration options:

  • max_concurrent_requests -
    • predefinito: 10
    • Il numero massimo di richieste simultanee.
  • multipart_threshold -
    • default: 8 MB
    • La soglia di dimensione la CLI usa per multipart trasferimenti di singoli file.
  • multipart_chunksize -
    • default: 8 MB
    • Quando si utilizza trasferimenti più parti, questa è la dimensione del blocco che la CLI usa per trasferimenti più parti di singoli file.

Questo non è così granulare pacchetti limitazione al secondo, ma sembra impostando un valore di richieste simultanee inferiore e abbassando entrambi soglia multiparte e chunksize aiuterà. Se i valori incollate sono vicino alla media, vorrei iniziare con questi valori e ottimizzare finché non si è in modo affidabile non superiore più i limiti:

$ 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

Questo in realtà mi sembrava la mia scommessa migliore, ma io sono ancora costantemente di colpire la mia i limiti dell'ospite. Torna al tavolo da disegno. Grazie! – binaryorganic

1

Se non è possibile rendere il lavoro di mantenimento con il comando AWS s3 come me, è possibile utilizzare:

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

dove -L 1M limita la larghezza di banda per 1M/s e il trattino dopo cp indicano stdin

Nota: l'awscli da apt-get è troppo vecchio per supportare l'input stdin, è necessario aggiornare tramite pip