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 no formato POSIX, considere ativar uploads de várias partes. Os uploads de várias partes podem acelerar em até 300% as transferências que incluem arquivos grandes dividindo arquivos grandes (mais de 1 GiB) em partes menores e enviando-os em paralelo.

Os sistemas de arquivos HDFS e compatíveis com S3 não oferecem suporte a 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

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

Recomendamos definir um valor de age de 7 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.