Esta página fornece detalhes sobre as opções de colocação 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 obtenção de dados, o Cloud Storage FUSE oferece quatro tipos de cache opcionais:
Considerações
A ativação da colocação em cache de ficheiros, estatísticas, tipos ou listas pode aumentar o desempenho, mas reduzir a consistência, o que ocorre normalmente quando acede ao mesmo contentor com vários clientes com uma taxa de alteração elevada. Para reduzir o impacto na consistência, recomendamos que monte contentores como só de leitura. Para saber mais sobre o comportamento da colocação em cache, consulte o artigo Semântica do FUSE do Cloud Storage na documentação do GitHub do FUSE do Cloud Storage.
Se uma entrada da cache de ficheiros ainda não tiver expirado com base no respetivo tempo de vida (TTL) e o ficheiro estiver na cache, as operações de leitura desse ficheiro são publicadas a partir da cache do cliente local sem que seja emitido qualquer pedido para o Cloud Storage.
Se uma entrada da cache de ficheiros tiver expirado com base no respetivo TTL, é feita primeiro uma chamada de
GET
atributos de ficheiros para o Cloud Storage e, se o ficheiro não estiver na cache ou os atributos do ficheiro indicarem que o conteúdo do ficheiro foi alterado, o conteúdo do ficheiro é obtido a partir do Cloud Storage. Ambas as operações estão sujeitas a latências de rede. Se os atributos do ficheiro em cache tiverem sido invalidados, mas o conteúdo do ficheiro estiver na cache e a respetiva geração de objetos não tiver sido alterada, o conteúdo do ficheiro é publicado a partir da cache apenas depois de a chamada dos atributos do ficheiroGET
confirmar a validade do conteúdo do ficheiro.Se um cliente FUSE do armazenamento na nuvem modificar o conteúdo de um ficheiro em cache ou os respetivos atributos do ficheiro, a entrada de cache desse ficheiro é imediatamente invalidada, o que garante a consistência na próxima leitura pelo mesmo cliente. No entanto, se diferentes clientes acederem ao mesmo conteúdo do ficheiro ou aos respetivos atributos do ficheiro, e as respetivas entradas forem colocadas em cache, esses clientes continuam a ler as respetivas versões em cache do conteúdo do ficheiro ou dos respetivos atributos do ficheiro até que as respetivas definições individuais de tempo de vida (TTL) causem uma invalidação.
Para evitar a instabilidade da cache, certifique-se de que todo o conjunto de dados se ajusta à capacidade da cache. Considere também a capacidade máxima e o desempenho que os seus meios de cache podem oferecer. Se atingir o desempenho máximo, o limite de capacidade ou ambos da cache aprovisionada, é vantajoso ler diretamente a partir do Cloud Storage, que tem limites muito superiores aos do Cloud Storage FUSE.
Caminho de leitura para dados em cache
A cache FUSE do Cloud Storage acelera as leituras repetidas depois de terem sido carregadas para a cache. As leituras iniciais e as falhas de cache vão diretamente para o Cloud Storage e estão sujeitas às latências de rede normais do Cloud Storage. Para melhorar o desempenho da primeira leitura, consulte o artigo Pré-preencha a cache de metadados.
Vista geral da colocação em cache de ficheiros
A cache de ficheiros FUSE do Cloud Storage é uma cache de leitura baseada no cliente que serve leituras de ficheiros repetidas a partir do armazenamento em cache suportado pelo seu sistema de ficheiros local. Para saber mais acerca da colocação em cache de ficheiros, consulte a página Colocação em cache de ficheiros.
Transferências paralelas
Quando ativa o armazenamento em cache de ficheiros, as transferências paralelas são ativadas automaticamente nas versões 2.12 e posteriores do FUSE do Cloud Storage. As transferências paralelas aceleram o desempenho de leitura para ficheiros grandes com mais de 1 GB, incluindo leituras iniciais, usando vários trabalhadores para transferir um ficheiro em paralelo através do diretório da cache de ficheiros como um buffer de obtenção prévia. As transferências paralelas podem ser usadas para otimizar o desempenho para cargas de trabalho de inteligência artificial (IA) e aprendizagem automática (AA), como a publicação de modelos, a reposição de pontos de verificação e a preparação em objetos grandes. Para mais informações sobre as transferências em paralelo, consulte o artigo Transferências em paralelo.
Configure o armazenamento em cache de ficheiros
Para saber como configurar o armazenamento em cache de ficheiros, consulte o artigo Use o armazenamento em cache de ficheiros FUSE do Cloud Storage.
Vista geral do armazenamento em cache de estatísticas
A cache de estatísticas do FUSE do Cloud Storage é uma cache para metadados de objetos que melhora o desempenho das operações específicas dos atributos de ficheiros, como o tamanho, a hora de modificação ou as autorizações. A utilização da cache de estatísticas melhora a latência através da utilização de dados em cache para realizar operações em vez de enviar um pedido de objeto de estatísticas para o Cloud Storage. Para saber mais sobre o armazenamento em cache de estatísticas, consulte o artigo Semântica do FUSE do Cloud Storage na documentação do GitHub do FUSE do Cloud Storage.
Configure a cache de estatísticas
A cache de estatísticas está ativada por predefinição e pode ser configurada através de um ficheiro de configuração do FUSE do Cloud Storage ou da CLI do FUSE do Cloud Storage. O tamanho máximo da cache é controlado através de um dos seguintes métodos:
Para mais informações sobre os valores predefinidos e recomendados para configurar a cache de estatísticas, consulte as páginas CLI FUSE do Cloud Storage e ficheiro de configuração do FUSE do Cloud Storage.
Configure a colocação em cache de estatísticas negativas
O Cloud Storage FUSE também oferece uma capacidade de colocação em cache de estatísticas negativas, que lhe permite definir um TTL para entradas de cache de estatísticas para ficheiros inexistentes ou resultados negativos. O TTL da cache de estatísticas negativas é controlado através de um dos seguintes métodos:
Vista geral da colocação em cache de tipos
A cache do tipo FUSE do Cloud Storage é uma cache de metadados que armazena informações de tipo em cache, como um ficheiro, um diretório ou um link simbólico, e acelera o desempenho das operações de metadados específicas da existência de ficheiros ou diretórios. A utilização da cache de tipos melhora a latência, reduzindo o número de pedidos feitos ao Cloud Storage para verificar se existe um ficheiro ou um diretório, armazenando estas informações localmente. Para saber mais sobre o armazenamento em cache de tipos, consulte a secção Semântica do FUSE do Cloud Storage na documentação do GitHub do FUSE do Cloud Storage.
Configure a colocação em cache de tipos
A cache de tipos está ativada por predefinição e pode ser configurada através de um ficheiro de configuração do FUSE do Cloud Storage ou da CLI gcsfuse
. O tamanho máximo da cache é controlado através de um dos seguintes métodos:
Para mais informações sobre a colocação em cache de tipos e os valores recomendados, consulte as páginas da gcsfuse
CLI ou do ficheiro de configuração do FUSE do Cloud Storage.
O TTL da cache é controlado através de um dos seguintes métodos:
Vista geral do armazenamento em cache de listas
A cache da lista FUSE do Cloud Storage destina-se à lista de diretórios e ficheiros ou a 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 listas de diretórios completas como parte da execução, como execuções de treino de IA/aprendizagem automática.
A cache de listas é mantida na memória na cache de páginas, que é controlada pelo kernel com base na disponibilidade de memória, ao contrário das caches de estatísticas e tipos, que são mantidas na memória da sua máquina e controladas pelo FUSE do Cloud Storage.
Configure o armazenamento em cache de listas
Pode ativar o armazenamento em cache de listas através de um dos seguintes métodos:
Para ativar e configurar o armazenamento em cache de listas, consulte o ficheiro de configuração do FUSE do Cloud Storage
ou as páginas de referência da CLI.gcsfuse
Configure a invalidação da cache de ficheiros, estatísticas e tipos
As secções seguintes descrevem como configurar a invalidação da cache para todos os tipos de cache.
Para as caches de ficheiros, estatísticas e tipos, use um dos seguintes métodos para especificar o TTL em segundos durante quanto tempo os metadados em cache são usados desde o momento em que são obtidos do Cloud Storage até expirarem e precisarem de ser atualizados:
Quando especifica um valor superior a 0
, os metadados da cache de ficheiros permanecem válidos apenas durante o período especificado. Para o armazenamento em cache de ficheiros,
recomendamos que aumente o valor com base no tempo esperado entre leituras
repetidas enquanto equilibra as necessidades de consistência. Com base na importância e na frequência
da alteração dos dados, recomendamos que defina o valor o mais alto possível
para a sua 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 de os metadados em cache expirarem e terem de ser atualizados, pode usar os seguintes valores para especificar como o ficheiro é lido:
0
: garante que o ficheiro com os dados mais atualizados é lido emitindo uma chamada de metadadosGET
para o Cloud Storage que verifica o ficheiro a partir do qual está a servir para garantir que a cache é consistente. Se o ficheiro na cache estiver atualizado, é publicado diretamente a partir da cache. A especificação de um valor diferente de0
pode levar a uma redução do desempenho porque tem de ser feita sempre uma chamada para o Cloud Storage para verificar primeiro os metadados. Se o ficheiro estiver na cache e não tiver sido alterado, o ficheiro é publicado a partir da cache com consistência após a chamada de metadadosGET
.-1
: garante que o ficheiro é sempre lido a partir da cache, se estiver disponível, sem verificar a consistência. A publicação de ficheiros sem verificar a consistência pode publicar dados inconsistentes e só deve ser usada temporariamente para cargas de trabalho executadas em tarefas com dados que não se alteram. Por exemplo, usar um valor de-1
é útil para a preparação da aprendizagem automática, em que os mesmos dados são lidos em várias épocas sem alterações.
Invalidação da cache de listas
A invalidação da cache de listas é definida especificando um valor superior a 0
através de um
dos seguintes métodos:
- Opção
--kernel-list-cache-ttl-secs
file-system:kernel-list-cache-ttl-secs
campo
A resposta da lista de diretórios é mantida na cache de páginas do kernel e permanece válida durante o período especificado. Quando especifica um valor de -1
, o Cloud Storage FUSE desativa a expiração da cache de listas e devolve a resposta da lista da cache quando está disponível. A especificação de um valor de 0
desativa a cache de listas.
O que se segue?
Saiba como usar e configurar o armazenamento em cache de ficheiros.
Leia mais sobre como melhorar o desempenho.