Práticas recomendadas para transferências do sistema de ficheiros

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

Práticas recomendadas de desempenho

Seguem-se as práticas recomendadas para garantir um bom desempenho da transferência:

  • Maximize o desempenho do agente de transferência.

  • Compare o seu desempenho transferindo um grande conjunto de dados, normalmente com, pelo menos, 100 GB.

    O Serviço de transferência de armazenamento é um serviço de grande escala e otimizado para débito, pelo que o seu desempenho em conjuntos de dados de teste muito pequenos não é indicativo do seu desempenho em conjuntos de dados grandes em produção.

  • Limite as pastas de origem individuais a 1 milhão de ficheiros. Os diretórios que contêm milhões de ficheiros podem tornar toda a transferência mais lenta.

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

  • Verifique se a interface de rede nas máquinas do agente tem o tamanho adequado para a largura de banda de leitura/escrita de que precisa.

    Por exemplo, se pretender usar totalmente uma rede de área alargada (WAN) de 20 Gbps, a interface de rede da máquina do agente tem de suportar 20 Gbps para ler dados do sistema de ficheiros em rede e outros 20 Gbps para transferir dados para o Cloud Storage, ou 40 Gbps de largura de banda total.

  • Monitorize a CPU, a memória e a rede nas máquinas dos agentes para garantir que as máquinas não são sobrecarregadas por outras cargas de trabalho, uma vez que isto pode afetar negativamente o desempenho. Consulte os requisitos de hardware do agente para ver os valores sugeridos de memória e CPU.

Carregamentos em várias partes

Se a sua transferência for de um sistema de ficheiros POSIX para o Cloud Storage ou entre sistemas de ficheiros POSIX, considere ativar os carregamentos multipartes. Os carregamentos multipartes podem acelerar as transferências que incluem ficheiros grandes até 300% dividindo os ficheiros grandes (>1 GiB) em partes mais pequenas e carregando essas partes em paralelo.

Os sistemas de ficheiros compatíveis com HDFS e S3 não suportam carregamentos multipartes.

Ative os carregamentos multipartes

Para ativar os carregamentos multipartes:

  • Tem de conceder as autorizações necessárias à conta que autoriza os agentes de transferência, quer seja uma conta de utilizador ou uma conta de serviço.

  • O destino ou o contentor intermédio não pode ter uma política de retenção nem uma retenção de objetos.

Depois de ativado, o serviço de transferência de armazenamento usa o carregamento multipartes automaticamente quando é provável que isso acelere uma transferência.

Configure regras de ciclo de vida de objetos multiparte

Pode usar a gestão do ciclo de vida de objetos do Cloud Storage para anular um carregamento multipart incompleto e eliminar as partes associadas. Consulte a secção Anule carregamentos multipartes incompletos na documentação do Cloud Storage.

Recomendamos que defina um valor de age de 7 dias.

Desative os carregamentos multipartes

Para desativar os carregamentos multipartes, reinstale os agentes de transferência através de 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 o seguinte:

  • PROJECT_ID especifica o ID do projeto que está a alojar a transferência.
  • CREDENTIAL_FILE: se o agente de transferência estiver a usar uma conta de serviço para autenticação, especifique o caminho para um ficheiro de credenciais da conta de serviço formatado em JSON.

Em alternativa, revogue as autorizações necessárias da conta que autoriza os agentes de transferência, quer seja uma conta de utilizador ou uma conta de serviço.

Maximize o desempenho do agente de transferência

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

  • Capacidades do sistema de ficheiros.

  • Limitações de hardware subjacentes.

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

  • Débito e utilização da WAN.

    Uma WAN mais lenta ou muito utilizada abranda o desempenho.

  • Caraterísticas do ficheiro.

    Por exemplo, muitos ficheiros grandes têm um débito de rede mais elevado do que muitos ficheiros pequenos devido à sobrecarga de rede.

Devido a estas variáveis, não podemos prever o desempenho real nem fornecer um número ideal de agentes a usar.

Recomendamos que use, pelo menos, três agentes em máquinas diferentes, se possível, para que a transferência permaneça tolerante a falhas. 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 o seu ambiente, faça o seguinte:

  1. Inicie uma transferência grande que demore, pelo menos, 1 hora a ser executada. Por exemplo, inicie uma transferência que contenha, pelo menos, 100 mil ficheiros e tenha, pelo menos, 100 GB de tamanho total.

  2. Use o Cloud Monitoring para observar o débito geral do agente.

  3. Aguarde até que o débito se estabilize e determine se está limitado pela capacidade da WAN ou pelo limite de largura de banda.

  4. Se não tiver saturado a capacidade da sua WAN e não tiver atingido o limite de transferência desejado, adicione outro agente. O agente adicional aumenta automaticamente a taxa de transferência. Aguarde aproximadamente 3 minutos para que o débito estabilize no Cloud Monitoring.

Repita os passos 3 e 4, adicionando um agente de cada vez até atingir o limite desejado. Desde que os recursos computacionais, do sistema de ficheiros e de rede estejam disponíveis, pode executar até 100 agentes em simultâneo por conjunto de agentes.

Se saturar a largura de banda de saída antes de atingir o limite pretendido, pode fazer qualquer uma das seguintes ações:

Se adicionou agentes, mas o débito não está a aumentar e a sua WAN não está saturada, investigue o débito do sistema de ficheiros. Em casos raros, a taxa de transferência do sistema de ficheiros está saturada, o que dificulta a sua capacidade de aumentar o desempenho da transferência.

Atribuir nomes aos agentes

Ao atribuir nomes aos agentes, recomendamos que faça o seguinte:

  • Inclua sempre o nome do anfitrião no seu agente. Isto ajuda a encontrar o computador no qual um agente está a ser executado. Recomendamos que transmita --hostname=$(hostname) para o comando run do Docker.

  • Escolha um esquema de prefixos de agentes que ajude a identificar agentes no contexto da sua organização de monitorização e infraestrutura. Por exemplo:

    • Se tiver três projetos de transferência separados, é recomendável incluir o nome da equipa no seu agente. Por exemplo, logistics.

    • Se estiver a executar dois projetos de transferência diferentes para dois centros de dados diferentes, é recomendável incluir o nome do centro de dados no prefixo do agente. Por exemplo, omaha.