Important: This documentation is about an older version. It's relevant only to the release noted, many of the features and functions have been updated or replaced. Please view the current version.
Caching
Loki supports caching of index writes and lookups, chunks and query results to speed up query performance. This sections describes the recommended Memcached configuration to enable caching for chunks and query results. The index lookup cache is configured to be in-memory by default.
Before you begin
- It is recommended to deploy four dedicated Memcached clusters.
- As of 2023-02-01, the
memcached:1.6.17-alpineversion of the library is recommended. - Consult the Loki ksonnet memcached deployment and the ksonnet memcached library.
Steps
To enable and configure Memcached:
Deploy each Memcached service with at least three replicas and configure each as follows:
- Chunk cache
--memory-limit=4096 --max-item-size=2m --conn-limit=1024 - Query result cache
--memory-limit=1024 --max-item-size=5m --conn-limit=1024
- Chunk cache
Configure Loki to use the cache.
If the Helm chart is used
Set
memcached.chunk_cache.hostto the Memecache address for the chunk cache,memcached.results_cache.hostto the Memecache address for the query result cache,memcached.chunk_cache.enabled=trueandmemcached.results_cache.enabled=true.Ensure that the connection limit of Memcached is at least
number_of_clients * max_idle_conns.The options
hostandservicedepend on the type of installation. For example, using thebitname/memcachedHelm Charts with the following commands, theservicevalues are alwaysmemcached.helm upgrade --install chunk-cache -n loki bitnami/memcached -f memcached-overrides.yaml helm upgrade --install write-cache -n loki bitnami/memcached -f memcached-overrides.yaml helm upgrade --install results-cache -n loki bitnami/memcached -f memcached-overrides.yaml helm upgrade --install index-cache -n loki bitnami/memcached -f memcached-overrides.yamlIn this case, the Loki configuration would be
loki: memcached: chunk_cache: enabled: true host: chunk-cache-memcached.loki.svc service: memcache batch_size: 256 parallelism: 10 results_cache: enabled: true host: results-cache-memcached.loki.svc service: memcache default_validity: 12hIf the Loki configuration is used
- Configure the chunk cache
chunk_store_config: chunk_cache_config: memcached: batch_size: 256 parallelism: 10 memcached_client: host: <memcached host> service: <port name of memcached service> - Configure the query result cache
query_range: cache_results: true results_cache: cache: memcached_client: consistent_hash: true host: <memcached host> service: <port name of memcached service> max_idle_conns: 16 timeout: 500ms update_interval: 1m
- Configure the chunk cache



