Nesta página, você encontra detalhes sobre as opções de armazenamento em cache disponíveis para o Cloud Storage FUSE e como cada tipo de cache pode ser configurado.
Para ajudar a aumentar o desempenho da recuperação de dados, o Cloud Storage FUSE oferece quatro tipos de armazenamento em cache opcional:
Considerações
A ativação do armazenamento em cache de arquivos, estatísticas, tipos ou listas pode aumentar o desempenho, mas reduzir a consistência, o que geralmente ocorre ao acessar o mesmo bucket usando vários clientes com uma alta taxa de mudança. Para reduzir o impacto na consistência, recomendamos montar buckets como somente leitura. Para saber mais sobre o comportamento de armazenamento em cache, consulte a documentação de semântica do Cloud Storage FUSE no GitHub.
Se uma entrada de cache de arquivos ainda não tiver expirado com base no time to live (TTL) e o arquivo estiver no cache, as operações de leitura desse arquivo serão disponibilizadas pelo cache do cliente local sem que nenhuma solicitação seja emitida para o Cloud Storage.
Se uma entrada de cache de arquivos tiver expirado com base no TTL, uma chamada de metadados
GET
será feita primeiro para o Cloud Storage e, se o arquivo não estiver no cache, ele será recuperado do Cloud Storage. Ambas as operações estão sujeitas a latências de rede. Se a entrada de metadados tiver sido invalidada, mas o arquivo estiver no cache e a geração de objeto não tiver sido alterada, o arquivo será exibido a partir do cache somente depois que a chamada de metadadosGET
for feita para verificar se os dados são válidos.Consistência: se um cliente do Cloud Storage FUSE modificar um arquivo armazenado em cache ou os metadados dele, o arquivo será imediatamente invalidado e a consistência será garantida na leitura a seguir pelo mesmo cliente. No entanto, se diferentes clientes acessarem o mesmo arquivo ou os metadados dele e as entradas forem armazenadas em cache, a versão armazenada em cache do arquivo ou dos metadados será lida, e não a versão atualizada, até que o arquivo seja invalidado pela a configuração de TTL desse cliente específico.
Para evitar a sobrecarga do cache, verifique se todo o conjunto de dados se ajusta à capacidade do cache. Considere também a capacidade máxima e o desempenho que a mídia de cache pode fornecer. Se você atingir o desempenho máximo do cache provisionado, o limite de capacidade ou ambos, leia diretamente do Cloud Storage, que tem limites muito maiores do que o Cloud Storage FUSE.
Caminho de leitura para dados em cache
O cache do Cloud Storage FUSE acelera leituras repetidas após a ingestão no cache. Tanto as leituras iniciais quanto as ausências no cache vão diretamente para o Cloud Storage e estão sujeitas às latências de rede normais do Cloud Storage. Para melhorar a performance da leitura pela primeira vez, consulte Pré-preencher o cache de metadados.
Visão geral do armazenamento em cache de arquivos
O cache de arquivos do Cloud Storage FUSE é um cache de leitura baseado em cliente que veicula leituras repetidas de arquivos do armazenamento em cache com suporte do sistema de arquivos local. Para saber mais sobre o armazenamento em cache de arquivos, consulte a página Armazenamento em cache de arquivos.
Downloads paralelos
Quando você ativa o armazenamento em cache de arquivos, os downloads paralelos são ativados automaticamente nas versões 2.12 e mais recentes do Cloud Storage FUSE. Os downloads paralelos aceleram o desempenho de leitura de arquivos grandes com mais de 1 GB, incluindo a primeira leitura, usando vários workers para baixar um arquivo em paralelo usando o diretório de cache de arquivos como um buffer de pré-busca. Os downloads paralelos podem ser usados para otimizar o desempenho de cargas de trabalho de inteligência artificial (IA) e machine learning (ML), como veiculação de modelos, restaurações de pontos de verificação e treinamento em objetos grandes. Para mais informações sobre downloads paralelos, consulte Downloads paralelos.
Configurar o armazenamento em cache de arquivos
Para saber como configurar o armazenamento em cache de arquivos, consulte Usar o armazenamento em cache de arquivos do Cloud Storage FUSE.
Visão geral do armazenamento em cache de estatísticas
O cache de estatísticas do Cloud Storage FUSE é um cache de metadados de objetos que melhora o desempenho de operações específicas de atributos de arquivos, como tamanho, tempo de modificação ou permissões. O uso do cache de estatísticas melhora a latência usando dados armazenados em cache para executar operações em vez de enviar uma solicitação de objeto de estatística para o Cloud Storage. Para saber mais sobre o armazenamento em cache de estatísticas, consulte a documentação semântica no GitHub.
Configurar o cache de estatísticas
O cache de estatísticas é ativado por padrão e pode ser configurado usando um arquivo de configuração do Cloud Storage FUSE. O tamanho máximo do cache é controlado usando um dos seguintes métodos:
Para mais informações sobre valores padrão e recomendados para configurar o cache de estatísticas, consulte as páginas de opções da CLI e arquivo de configuração do Cloud Storage FUSE.
Configurar o armazenamento em cache de estatísticas negativas
O Cloud Storage FUSE também oferece um recurso de armazenamento em cache de estatísticas negativas, que permite definir um TTL para entradas de cache de estatísticas de arquivos inexistentes ou resultados negativos. O TTL do cache de estatísticas negativas é controlado usando um dos seguintes métodos:
Visão geral do armazenamento em cache de tipos
O cache do tipo FUSE do Cloud Storage é um cache de metadados que acelera o desempenho de operações de metadados específicas da existência de arquivos ou diretórios. O uso do cache de tipos melhora a latência ao reduzir o número de solicitações feitas ao Cloud Storage para verificar se um arquivo ou diretório existe armazenando essas informações localmente. Para saber mais sobre o armazenamento em cache de tipos, consulte a documentação semântica no GitHub.
Configurar o cache de tipos
O cache de tipos é ativado por padrão e pode ser configurado usando um arquivo de configuração do Cloud Storage FUSE ou a CLI do Cloud Storage FUSE. O tamanho máximo do cache é controlado usando um dos métodos a seguir:
Para mais informações sobre o armazenamento em cache de tipos e os valores recomendados, consulte as páginas de opções da CLI ou arquivo de configuração.
O TTL do cache é controlado usando um dos seguintes métodos:
Visão geral do armazenamento em cache de listas
O cache de lista do Cloud Storage FUSE é para listas de diretórios e arquivos, ou respostas ls
,
que melhoram as velocidades das operações de lista. O armazenamento em cache de listas é especialmente útil
para cargas de trabalho que repetem listagens completas de diretórios como parte da execução,
como execuções de treinamento de IA/ML.
O cache da lista é mantido na memória do cache da página, que é controlada pelo kernel com base na disponibilidade de memória, ao contrário dos caches de estatísticas e tipos, que são mantidos na memória da máquina e controlados pelo Cloud Storage FUSE.
Configurar o cache de lista
É possível ativar o cache de lista usando um dos seguintes métodos:
Para ativar e configurar o armazenamento em cache de listas, consulte o arquivo de configuração do Cloud Storage FUSE ou as páginas Opções da CLI do Cloud Storage FUSE.
Configurar a invalidação de cache de arquivos, estatísticas e tipos
As seções a seguir descrevem como configurar a invalidação de cache para todos os tipos de cache.
Para caches de arquivo, estatística e tipo, use um dos seguintes métodos para especificar o TTL em segundos de quanto tempo os metadados armazenados em cache são usados desde que são buscados do Cloud Storage até expirar e precisarem ser atualizados:
Quando você especifica um valor maior que 0
, os metadados do cache de arquivos permanecem válidos apenas pelo período especificado. Para armazenamento em cache de arquivos,
recomendamos aumentar o valor com base no tempo esperado entre leituras
repetidas enquanto equilibra as necessidades de consistência. Com base na importância e frequência
da alteração dos dados, recomendamos definir o valor o mais alto possível na carga de trabalho. Quando uma entrada de metadados se torna inválida, as leituras subsequentes são consultadas no Cloud Storage.
Além de aceitar valores que representam um TTL específico em segundos antes que os metadados armazenados em cache expirem e precisem ser atualizados, você pode usar os seguintes valores para especificar como o arquivo é lido:
0
: garante que o arquivo com os dados mais atualizados seja lido emitindo uma chamada de metadadosGET
para o Cloud Storage que verifica o arquivo em que ele está sendo veiculado para garantir que o cache seja consistente. Se o arquivo estiver atualizado, ele será exibido diretamente no cache. Especificar um valor diferente de0
pode reduzir o desempenho porque sempre é necessário fazer uma chamada ao Cloud Storage para verificar os metadados primeiro. Se o arquivo estiver no cache e não tiver sido alterado, ele será disponibilizado no cache com consistência após a chamada de metadadosGET
.-1
: garante que o arquivo seja sempre lido no cache se disponível, sem verificar a consistência. A disponibilização de arquivos sem verificação de consistência pode exibir dados inconsistentes e só deve ser usada temporariamente para cargas de trabalho executadas em jobs com dados não alterados. Por exemplo, usar o valor-1
é útil para treinamento de machine learning, em que os mesmos dados são lidos em várias épocas sem alterações.
Listar invalidação de cache
A invalidação do cache de lista é definida especificando um valor maior que 0
usando um
dos seguintes métodos:
- Opção da CLI
--kernel-list-cache-ttl-secs
- Campo
file-system:kernel-list-cache-ttl-secs
A resposta da lista de diretórios é mantida no cache de páginas do kernel e permanece válida
pelo período especificado. Quando você especifica um valor de -1
, o Cloud Storage FUSE desativa a expiração do cache de lista e retorna a resposta da lista do cache quando ela está disponível. Especificar um valor de 0
desativa o cache de lista.
A seguir
Saiba como usar e configurar o armazenamento em cache de arquivos.
Leia mais sobre como melhorar o desempenho.