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:
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 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 upload delas 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 do ciclo de vida de objetos com várias partes
É possível usar o Gerenciamento do ciclo de vida de objetos do Cloud Storage para abortar um upload de vários arquivos incompleto 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:
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.
Use o Cloud Monitoring para observar a capacidade geral do agente.
Aguarde até que a capacidade atinja um nível e determine se você está limitado pela capacidade da WAN ou da largura de banda.
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:
- Controle a largura de banda usada pelo Serviço de transferência do Cloud Storage.
- Adquira mais largura de banda de rede.
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 comandorun
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
.