Desempenho do Cloud Storage FUSE

Esta página oferece orientações sobre como melhorar o desempenho do Cloud Storage FUSE.

Melhorar a performance de leitura e gravação

Para melhorar a performance de leitura e gravação, recomendamos o seguinte:

  • Ativar o armazenamento em cache: o Cloud Storage FUSE oferece quatro tipos de cache opcionais do lado do cliente que armazenam tipos específicos de dados e metadados localmente para melhorar o desempenho:

    O armazenamento em cache do Cloud Storage FUSE funciona com qualquer diretório especificado pelo usuário que seja apoiado pela escolha de armazenamento. O desempenho do cache do Cloud Storage FUSE corresponde ao armazenamento subjacente usado pelo cache com sobrecarga mínima.

  • Acelere as leituras ativando downloads paralelos: ative os downloads paralelos para acelerar a leitura de arquivos grandes com mais de 1 GB. Para mais informações, consulte Melhore o desempenho de leitura usando downloads paralelos.

  • Execute cargas de trabalho de leitura sequencial sempre que possível: o Cloud Storage FUSE tem um desempenho melhor para cargas de trabalho de leitura sequencial do que cargas de trabalho de leitura aleatória. O Cloud Storage FUSE usa uma heurística para detectar quando um arquivo está sendo lido em sequência, permitindo que o Cloud Storage FUSE emita menos solicitações de leitura maiores para o Cloud Storage usando a mesma conexão TCP.

  • Ajustar o tamanho dos arquivos com base no tipo de leitura: para otimizar o desempenho da leitura sequencial, recomendamos fazer upload e ler arquivos com tamanho entre 5 MB e 200 MB. Para otimizar o desempenho da leitura aleatória, recomendamos que você fazer upload e ler arquivos com cerca de 2 MB.

  • Montar buckets com namespace hierárquico ativado: para aumentar a velocidade de leitura e gravação e garantir a atomicidade para operações iniciais mais altas de consultas por segundo (QPS), recomendamos a montagem de buckets com namespace hierárquico ativado. Para saber mais sobre como os buckets com namespace hierárquico podem melhorar o desempenho do Cloud Storage FUSE, consulte Montar buckets com namespace hierárquico ativado.

Melhorar a performance da leitura pela primeira vez

Antes de executar a carga de trabalho, recomendamos listar de maneira recursiva os arquivos no bucket montado para preencher os caches de tipo e estatística com antecedência e melhorar o desempenho na primeira execução com um método mais rápido e em lote:

ls -R MOUNT_POINT > /dev/null

Usar o armazenamento em cache de arquivos para melhorar a capacidade de processamento

O Cloud Storage FUSE tem uma latência maior do que um sistema de arquivos local. A capacidade é reduzida quando você lê ou grava pequenos arquivos um de cada vez, já que resulta em várias chamadas de API separadas. Ler ou gravar vários arquivos grandes de uma só vez pode ajudar a aumentar a capacidade. Use o recurso de cache de arquivos do Cloud Storage FUSE para melhorar o desempenho de E/S pequenas e aleatórias. Para saber mais sobre o armazenamento em cache de arquivos e como ativar o recurso, consulte Usar o armazenamento em cache de arquivos do Cloud Storage FUSE.

Montar buckets com namespace hierárquico ativado

Para garantir a atomicidade de operações de consultas por segundo (QPS) iniciais mais altas, como ponto de controle e renomeações ou alterações de diretório, recomendamos montar buckets com namespace hierárquico ativado. O namespace hierárquico organiza os dados em uma estrutura hierárquica de sistema de arquivos, tornando as operações no bucket mais eficientes. As chamadas de Listar objeto (BucketHandle.Objects) são substituídas por chamadas de obter pasta, resultando em tempos de resposta mais rápidos e menos chamadas de lista em geral para cada operação.

Aumente o tamanho de leitura antecipada para melhorar a taxa de transferência de leituras grandes

É possível melhorar a taxa de transferência de leitura de grandes volumes aumentando a quantidade de dados pré-carregados com cada solicitação de leitura usando o parâmetro do kernel read_ahead_kb do Linux na sua máquina local. Recomendamos aumentar o parâmetro do kernel read_ahead_kb para 1 MB em vez de usar a quantidade padrão de 128 KB definida na maioria das distribuições do Linux. As permissões sudo ou root são necessárias para aumentar o parâmetro do kernel.

Para aumentar o parâmetro do kernel read_ahead_kb para 1 MB em um diretório montado do FUSE do Cloud Storage, use o comando abaixo, em que /path/to/mount/point é o ponto de montagem do FUSE do Cloud Storage. O bucket precisa ser montado no FUSE do Cloud Storage antes da execução do comando. Caso contrário, o parâmetro do kernel não será aumentado.

  export MOUNT_POINT=/path/to/mount/point
  echo 1024 | sudo tee /sys/class/bdi/0:$(stat -c "%d" $MOUNT_POINT)/read_ahead_kb

Atingir a capacidade máxima de processamento

Para alcançar a capacidade máxima, use uma máquina com recursos de CPU suficientes para impulsionar a capacidade e saturar a placa de interface de rede (NIC). Recursos insuficientes de CPU podem causar limitação do Cloud Storage FUSE.

Se você estiver usando o Google Kubernetes Engine, aumente a alocação de CPU para o contêiner de arquivo secundário do Cloud Storage FUSE se as cargas de trabalho precisarem de maior capacidade. É possível aumentar os recursos usados pelo contêiner secundário ou alocar recursos ilimitados.

Avaliar as necessidades de IOPS em consultas por segundo

O Filestore é uma opção melhor do que o Cloud Storage FUSE para cargas de trabalho que exigem operações de entrada/saída por segundo (IOPS, na sigla em inglês) altas e instantâneas, também conhecidas como consultas por segundo no Cloud Storage. O Filestore também é a melhor opção para IOPS muito altas em um único sistema de arquivos e menor latência.

Como alternativa, também é possível usar o recurso de cache de arquivos do Cloud Storage FUSE para basear as características de desempenho da mídia de cache subjacente se ela oferecer IOPS alto e baixa latência.

Realizar testes de carga

Para ver instruções sobre como realizar testes de carga no Cloud Storage FUSE, consulte Comparativos de mercado de desempenho na documentação do GitHub.

A seguir