Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

Caché de páginas en espacio de usuario

Descripción general

La caché de páginas en espacio de usuario es un nuevo mecanismo de caché que permite almacenar en caché datos en la memoria del proceso, en lugar de depender de la caché de páginas del SO.

ClickHouse ya ofrece la caché del sistema de archivos como una forma de caché sobre almacenamiento remoto de objetos, como Amazon S3, Google Cloud Storage (GCS) o Azure Blob Storage. La caché de páginas en espacio de usuario está diseñada para acelerar el acceso a datos remotos cuando la caché normal del SO no resulta suficiente.

Se diferencia de la caché del sistema de archivos en los siguientes aspectos:

Caché del sistema de archivos Caché de páginas en espacio de usuario
Escribe datos en el sistema de archivos local Solo está presente en memoria
Ocupa espacio en disco (también configurable en tmpfs) Es independiente del sistema de archivos
Sobrevive a los reinicios del servidor No sobrevive a los reinicios del servidor
No aparece en el uso de memoria del servidor Aparece en el uso de memoria del servidor
Adecuada tanto para disco como para memoria (caché de páginas del SO) Buena para servidores sin disco

Opciones de configuración y uso

Uso

Para habilitar la caché de páginas en espacio de usuario, primero configúrala en el servidor:

cat config.d/page_cache.yaml
page_cache_max_size: 100G

A continuación, habilite su uso a nivel de consulta:

SET use_page_cache_for_disks_without_file_cache=1;

Configuración

Ajuste Descripción Predeterminado
use_page_cache_for_disks_without_file_cache Usa la caché de páginas en espacio de usuario para discos remotos que no tienen habilitada la caché del sistema de archivos. 0
use_page_cache_with_distributed_cache Usa la caché de páginas en espacio de usuario cuando se utiliza Distributed Cache. 0
read_from_page_cache_if_exists_otherwise_bypass_cache Usa la caché de páginas en espacio de usuario en modo pasivo, de forma similar a read_from_filesystem_cache_if_exists_otherwise_bypass_cache. 0
page_cache_inject_eviction La caché de páginas en espacio de usuario invalidará algunas páginas aleatoriamente de vez en cuando. Pensado para pruebas. 0
page_cache_block_size Tamaño, en bytes, de los fragmentos de archivo que se almacenarán en la caché de páginas en espacio de usuario. Todas las lecturas que pasen por la caché se redondearán al alza a un múltiplo de este tamaño. 1048576
page_cache_history_window_ms Retraso antes de que la memoria liberada pueda volver a ser utilizada por la caché de páginas en espacio de usuario. 1000
page_cache_policy Nombre de la política de la caché de páginas en espacio de usuario. SLRU
page_cache_size_ratio Tamaño de la cola protegida de la caché de páginas en espacio de usuario en relación con el tamaño total de la caché. 0.5
page_cache_min_size Tamaño mínimo de la caché de páginas en espacio de usuario. 104857600
page_cache_max_size Tamaño máximo de la caché de páginas en espacio de usuario. Establécelo en 0 para deshabilitar la caché. Si es mayor que page_cache_min_size, el tamaño de la caché se ajustará continuamente dentro de este rango para usar la mayor parte posible de la memoria disponible, manteniendo el uso total de memoria por debajo del límite (max_server_memory_usage[_to_ram_ratio]). 0
page_cache_free_memory_ratio Fracción del límite de memoria que debe mantenerse libre de la caché de páginas en espacio de usuario. Análogo al ajuste de Linux min_free_kbytes. 0.15
page_cache_lookahead_blocks Si se produce un fallo de caché en la caché de páginas en espacio de usuario, lee de una vez desde el almacenamiento subyacente hasta esta cantidad de bloques consecutivos, si tampoco están en la caché. Cada bloque tiene un tamaño de page_cache_block_size bytes. 16
page_cache_shards Distribuye la caché de páginas en espacio de usuario entre esta cantidad de segmentos para reducir la contención de mutex. Experimental; es poco probable que mejore el rendimiento. 4
Navigation