Best practice per i trasferimenti di file system

In questa pagina vengono descritte le best practice per i trasferimenti del file system.

Best practice per le prestazioni

Di seguito sono riportate le best practice per garantire buone prestazioni di trasferimento:

  • Massimizza le prestazioni dell'agente di trasferimento.

  • Confronta le tue prestazioni trasferendo un grande corpus di dati, in genere a di almeno 100 GB.

    Storage Transfer Service è un servizio su larga scala ottimizzato per la velocità in uscita, pertanto le prestazioni su set di dati di test molto piccoli non sono indicative delle prestazioni su set di dati di grandi dimensioni in produzione.

  • Limita le singole cartelle di origine a 1 milione di file. Le directory contenenti milioni di file possono rallentare l'intero trasferimento.

  • Esegui gli agenti in macchine virtuali (VM) separate per poter scalare il consumo di risorse in modo più efficace.

  • Verifica che l'interfaccia di rete sulle macchine degli agenti sia dimensionata per e la larghezza di banda di lettura/scrittura necessaria.

    Ad esempio, se intendi utilizzare completamente una rete WAN (Wide Area Network) da 20 Gbps, l'interfaccia di rete della macchina dell'agente deve supportare 20 Gbps per leggere i dati dal file system di rete e altri 20 Gbps per trasferire i dati a Cloud Storage, ovvero 40 Gbps di larghezza di banda totale.

  • Monitora la CPU, la memoria e la rete sulle macchine dell'agente per assicurarti che le macchine non siano sovraccariche da altri carichi di lavoro, in quanto ciò potrebbe influire negativamente sulle prestazioni. Consulta i requisiti hardware dell'agente per i valori suggeriti per memoria e CPU.

Caricamenti multiparte

Se il trasferimento avviene da un file system POSIX a Cloud Storage o tra file system POSIX, ti consigliamo di attivare i caricamenti suddivisi. I caricamenti suddivisi in più parti possono velocizzare fino al 300% i trasferimenti che includono file di grandi dimensioni, suddividendoli in parti più piccole e caricandoli in parallelo.

I file system compatibili con HDFS e S3 non supportano i caricamenti suddivisi in più parti.

Attivare i caricamenti multiparte

Per attivare i caricamenti multiparte:

  • Devi concedere le autorizzazioni richieste a L'account che autorizza gli agenti di trasferimento: un account utente o un servizio .

  • Il bucket di destinazione o intermedio non deve avere un criterio di conservazione o un blocco degli oggetti.

Una volta attivato, Storage Transfer Service utilizza automaticamente il caricamento suddiviso se questa operazione può velocizzare un trasferimento.

Configurare le regole del ciclo di vita degli oggetti con più parti

Puoi utilizzare Gestione del ciclo di vita degli oggetti Cloud Storage per interrompere un evento incompleto eseguire il caricamento multiparte ed eliminare le parti associate. Consulta la sezione Interrompere i caricamenti suddivisi in più parti incompleti della documentazione di Cloud Storage.

Ti consigliamo di impostare un valore age di 7 giorni.

Disattiva caricamenti multiparte

Per disabilitare i caricamenti multiparte, reinstalla gli agenti di trasferimento utilizzando docker run e supera --enable-multipart=false:

sudo docker run --ulimit memlock=64000000 -d --rm \
-v /usr/local/research:/usr/local/research \
gcr.io/cloud-ingest/tsop-agent:latest \
--project-id=PROJECT_ID \
--agent-pool=AGENT_POOL \
--creds-file=CREDENTIAL_FILE \
--hostname=$(hostname) \
--enable-multipart=false

Sostituisci quanto segue:

  • PROJECT_ID specifica l'ID progetto che ospita il trasferimento.
  • CREDENTIAL_FILE: se l'agente di trasferimento utilizza un account di servizio per l'autenticazione, specifica il percorso di un file delle credenziali dell'account di servizio in formato JSON.

In alternativa, revoca le autorizzazioni richieste da L'account che autorizza gli agenti di trasferimento: un account utente o un servizio .

Massimizzare il rendimento dell'agente di trasferimento

Il rendimento del trasferimento è influenzato dalle seguenti variabili:

  • Funzionalità del file system.

  • Limitazioni hardware sottostanti.

    Il tipo di supporto dell'unità disco rigido, il bus di input/output e la connettività della rete di area locale (LAN) influiscono sulle prestazioni.

  • la velocità effettiva e l'utilizzo della WAN.

    Una WAN più lenta o con un utilizzo elevato rallenta le prestazioni.

  • Caratteristiche dei file.

    Ad esempio, molti file di grandi dimensioni hanno una rete rispetto a molti file di piccole dimensioni a causa dell'overhead di rete.

A causa di queste variabili, non possiamo prevedere il rendimento effettivo o fornire un numero ottimale di agenti da utilizzare.

Ti consigliamo di utilizzare almeno tre agenti su macchine diverse se possibile, in modo che il trasferimento rimanga a tolleranza di errore. Puoi aggiungere un trasferimento degli agenti mentre sono in esecuzione i trasferimenti, con l'aumento dinamico delle prestazioni.

Per osservare l'impatto dell'aggiunta di agenti e scegliere il numero di agenti più adatto al tuo ambiente:

  1. Avvia un trasferimento di grandi dimensioni che richiede almeno 1 ora. Ad esempio: avvia un trasferimento che contenga almeno 100.000 file e che sia 100 GB di spazio totale.

  2. Utilizza Cloud Monitoring per osservare il throughput complessivo dell'agente.

  3. Attendi che la velocità effettiva si stabilizzi e determina se la tua capacità WAN o la tua larghezza di banda massima sono limitate.

  4. Se non hai saturato la capacità della tua WAN e non hai raggiunto la tua limite di trasferimento desiderato, aggiungi un altro agente. L'agente aggiuntivo aumenta automaticamente il throughput del trasferimento. Attendi circa 3 minuti per la velocità effettiva viene stabilizzata in Cloud Monitoring.

Ripeti i passaggi 3 e 4, aggiungendo un agente alla volta finché non raggiungi il limite che preferisci. Finché le risorse computazionali, di file system e di rete sono puoi eseguire contemporaneamente fino a 100 agenti per pool di agenti.

Se saturari la larghezza di banda in uscita prima di raggiungere il limite desiderato, può eseguire una delle seguenti operazioni:

Se hai aggiunto agenti, ma la velocità effettiva non è in aumento e la tua rete WAN non è in aumento saturato, esamina la velocità effettiva del file system. In rari casi la velocità effettiva del file system è satura, ostacolando la capacità per aumentare le prestazioni del trasferimento.

Denominazione degli agenti

Quando denomina gli agenti, ti consigliamo di procedere come segue:

  • Includi sempre il nome host nell'agente. Questo ti aiuta a trovare e la macchina su cui è in esecuzione un agente. Ti consigliamo di passare --hostname=$(hostname) al comando run di Docker.

  • Scegli uno schema del prefisso dell'agente che ti aiuti a identificare gli agenti nel contesto dell'organizzazione dell'infrastruttura e del monitoraggio. Ad esempio:

    • Se hai tre progetti di trasferimento distinti, ti consigliamo di includere il nome del team nell'agente. Ad esempio, logistics.

    • Se esegui due progetti di trasferimento diversi per due diversi data center, è consigliabile includere nell'agente il nome del data center . Ad esempio, omaha.