Pular para o conteúdo principal

Visão geral

O cache de páginas em espaço de usuário é um novo mecanismo de cache que permite armazenar dados na memória do processo, em vez de depender do cache de páginas do SO.
O ClickHouse já oferece o cache do sistema de arquivos como uma forma de cache sobre armazenamento remoto de objetos, como Amazon S3, Google Cloud Storage (GCS) ou Azure Blob Storage. O cache de páginas em espaço de usuário foi projetado para acelerar o acesso a dados remotos quando o cache normal do SO não é suficiente. Ele difere do cache do sistema de arquivos das seguintes maneiras:
Cache do sistema de arquivosCache de páginas em espaço de usuário
Grava dados no sistema de arquivos localPresente apenas na memória
Ocupa espaço em disco (também configurável em tmpfs)Independente do sistema de arquivos
Sobrevive a reinicializações do servidorNão sobrevive a reinicializações do servidor
Não aparece no uso de memória do servidorAparece no uso de memória do servidor
Adequado tanto para disco quanto para memória (cache de páginas do SO)Bom para servidores sem disco

Opções de configuração e uso

Uso

Para habilitar o cache de páginas em espaço de usuário, primeiro configure-o no servidor:
cat config.d/page_cache.yaml
page_cache_max_size: 100G
O cache de páginas em espaço de usuário usará até a quantidade de memória especificada, mas essa quantidade de memória não fica reservada. A memória será liberada quando for necessária para outras necessidades do servidor.
Em seguida, habilite seu uso no nível da consulta:
SET use_page_cache_for_disks_without_file_cache=1;

Configurações

ConfiguraçãoDescriçãoPadrão
use_page_cache_for_disks_without_file_cacheUsa o cache de páginas em espaço do usuário para discos remotos que não têm o cache do sistema de arquivos habilitado.0
use_page_cache_with_distributed_cacheUsa o cache de páginas em espaço do usuário quando o cache distribuído é usado.0
read_from_page_cache_if_exists_otherwise_bypass_cacheUsa o cache de páginas em espaço do usuário no modo passivo, de forma semelhante a read_from_filesystem_cache_if_exists_otherwise_bypass_cache.0
page_cache_inject_evictionO cache de páginas em espaço do usuário às vezes invalidará algumas páginas aleatoriamente. Destinado a testes.0
page_cache_block_sizeTamanho dos fragmentos de arquivo a serem armazenados no cache de páginas em espaço do usuário, em bytes. Todas as leituras que passarem pelo cache serão arredondadas para cima para um múltiplo desse tamanho.1048576
page_cache_history_window_msAtraso antes que a memória liberada possa ser usada pelo cache de páginas em espaço do usuário.1000
page_cache_policyNome da política do cache de páginas em espaço do usuário.SLRU
page_cache_size_ratioO tamanho da fila protegida no cache de páginas em espaço do usuário em relação ao tamanho total do cache.0.5
page_cache_min_sizeTamanho mínimo do cache de páginas em espaço do usuário.104857600
page_cache_max_sizeTamanho máximo do cache de páginas em espaço do usuário. Defina como 0 para desabilitar o cache. Se for maior que page_cache_min_size, o tamanho do cache será ajustado continuamente dentro desse intervalo para usar a maior parte da memória disponível, mantendo o uso total de memória abaixo do limite (max_server_memory_usage[_to_ram_ratio]).0
page_cache_free_memory_ratioFração do limite de memória que deve permanecer livre do cache de páginas em espaço do usuário. Análogo à configuração min_free_kbytes do Linux.0.15
page_cache_lookahead_blocksQuando houver falha no cache de páginas em espaço do usuário, lê de uma só vez até essa quantidade de blocos consecutivos do armazenamento subjacente, se eles também não estiverem no cache. Cada bloco tem page_cache_block_size bytes.16
page_cache_shardsDistribui o cache de páginas em espaço do usuário entre esta quantidade de shards para reduzir a contenção de mutex. Experimental, provavelmente não melhorará o desempenho.4
Última modificação em 10 de junho de 2026