Práticas recomendadas para transferências por sistema de arquivos

Esta página descreve as práticas recomendadas para transferências de sistema de arquivos.

Práticas recomendadas de desempenho

Veja a seguir as práticas recomendadas para garantir um bom desempenho de transferência:

  • Maximize o desempenho do seu agente de transferência.

  • Compare seu desempenho transferindo um grande corpus de dados, geralmente de 100 GB ou maior.

    O Serviço de transferência do Cloud Storage é um serviço de larga escala otimizado para capacidade, portanto, o desempenho em conjuntos de dados de teste muito pequenos não é indicativo do desempenho em grandes conjuntos de dados em produção.

  • Limite as pastas de origem individuais a 1 milhão de arquivos. Diretórios contendo milhões de arquivos podem atrasar toda a transferência.

  • Execute agentes em máquinas virtuais (VMs) separadas para poder escalonar o consumo de recursos de forma mais eficaz.

  • Verifique se a interface de rede nas máquinas do agente está dimensionada para a largura de banda de leitura/gravação necessária.

    Por exemplo, se você pretende usar totalmente uma rede de longa distância (WAN) de 20 Gbps, a interface de rede da máquina do agente precisa suportar 20 Gbps para ler dados do sistema de arquivos em rede e outros 20 Gbps para transferir dados para o Cloud Storage. Ou seja, 40 Gbps de largura de banda total.

  • Monitore a CPU, a memória e a rede nas máquinas do agente para garantir que elas não estejam sobrecarregadas por outras cargas de trabalho, porque isso pode afetar negativamente o desempenho. Consulte os Requisitos de hardware do agente para ver valores sugeridos de memória e CPU.

Uploads de várias partes

Se a transferência for de um sistema de arquivos POSIX para o Cloud Storage ou entre sistemas de arquivos POSIX, considere ativar os uploads de várias partes. Os uploads de várias partes podem acelerar transferências que incluem arquivos grandes em até 300% ao dividir arquivos grandes (> 1 GiB) em partes menores e fazer o upload dessas partes em paralelo.

Os sistemas de arquivos compatíveis com HDFS e S3 não aceitam uploads de várias partes.

Ativar uploads de várias partes

Para ativar uploads de várias partes:

  • Você precisa conceder as permissões necessárias à conta que autoriza os agentes de transferência, uma conta de usuário ou uma conta de serviço.

  • O bucket de destino ou intermediário não pode ter uma política de retenção ou retenção de objetos.

Depois de ativado, o Serviço de transferência do Cloud Storage usa o upload de várias partes automaticamente quando é provável que isso acelere uma transferência.

Configurar regras de ciclo de vida de objetos de várias partes

Use o Gerenciamento do ciclo de vida de objetos do Cloud Storage para cancelar um upload incompleto de várias partes e excluir as associadas. Consulte Cancelar uploads incompletos de várias partes na documentação do Cloud Storage.

Recomendamos definir um valor de age de sete dias.

Desativar uploads de várias partes

Para desativar os uploads de várias partes, reinstale os agentes de transferência usando docker run e transmita --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

Substitua:

  • PROJECT_ID especifica o ID do projeto que está hospedando a transferência.
  • CREDENTIAL_FILE: se o agente de transferência estiver usando uma conta de serviço para autenticação, especifique o caminho para um arquivo de credencial da conta de serviço no formato JSON.

Outra opção é revogar as permissões necessárias da conta que autoriza os agentes de transferência, seja uma conta de usuário ou uma conta de serviço.

Maximizar o desempenho do agente de transferência

O desempenho da sua transferência é afetado pelas seguintes variáveis:

  • Recursos do sistema de arquivos.

  • Limitações de hardware subjacentes.

    O tipo de mídia do disco rígido, o barramento de entrada/saída e a conectividade de rede local (LAN) afetam o desempenho.

  • Capacidade e utilização da WAN.

    Uma WAN mais lenta ou sobrecarregada prejudica o desempenho.

  • Características do arquivo.

    Por exemplo, muitos arquivos grandes têm uma capacidade de rede maior do que muitos arquivos pequenos devido à sobrecarga da rede.

Por causa dessas variáveis, não podemos prever o desempenho real nem fornecer um número ideal de agentes para usar.

Recomendamos que, se possível, você use pelo menos três agentes em máquinas diferentes, para que sua transferência permaneça tolerante a falhas. Você pode adicionar agentes de transferência enquanto as transferências estão em execução, à medida que o desempenho aumenta dinamicamente.

Para observar o impacto da adição de agentes e escolher o número de agentes que funciona melhor para seu ambiente, faça o seguinte:

  1. Inicie uma transferência grande que leve pelo menos uma hora para ser executada. Por exemplo, inicie uma transferência que contenha pelo menos 100 mil arquivos e 100 GB de tamanho total.

  2. Use o Cloud Monitoring para observar a capacidade geral do agente.

  3. Aguarde até que a capacidade atinja um nível e determine se você está limitado pela capacidade da WAN ou da largura de banda.

  4. Se você não saturou sua capacidade de WAN e não atingiu o limite de transferência desejado, adicione outro agente. O agente adicional aumenta automaticamente a capacidade de transferência. Aguarde cerca de três minutos para que a capacidade se estabilize no Cloud Monitoring.

Repita as etapas 3 e 4, adicionando um agente por vez até alcançar o limite desejado. Desde que os recursos computacionais, de sistema de arquivos e de rede estejam disponíveis, é possível executar até 100 agentes simultaneamente por pool de agentes.

Se você saturar a largura de banda de saída antes de atingir o limite desejado, poderá fazer o seguinte:

Se você adicionou agentes, mas a capacidade não está aumentando e a WAN não está saturada, investigue a capacidade do sistema de arquivos. Em casos raros, a capacidade do sistema de arquivos está saturada, dificultando o aumento do desempenho da transferência.

Como nomear agentes

Ao nomear agentes, recomendamos que você faça o seguinte:

  • Sempre inclua o nome do host no seu agente. Isso ajuda a encontrar a máquina onde um agente está sendo executado. Recomendamos que você transmita --hostname=$(hostname) para o comando run do Docker.

  • Escolha um esquema de prefixo de agentes que ajude a identificá-los no contexto de monitoramento e infraestrutura da sua organização. Por exemplo:

    • Se você tiver três projetos de transferência separados, convém incluir o nome da equipe no seu agente. Por exemplo, logistics.

    • Se você estiver executando dois projetos de transferência para dois data centers diferentes, inclua o nome do data center no prefixo do agente. Por exemplo, omaha