ES_SHARD_CACHE_EVICTION_MEM elasticsearch resource_error ai_generated true

Elasticsearch异常:分片请求缓存逐出触发内存压力,当前堆使用率 [85%]

ElasticsearchException: shard request cache eviction triggered memory pressure, current heap usage [85%]

ID: elasticsearch/shard-request-cache-eviction-memory-pressure

其他格式: JSON · Markdown 中文 · English
83%修复率
88%置信度
1证据数
2024-09-01首次发现

版本兼容性

版本状态引入弃用备注
7.17.0 active
8.11.0 active
8.12.0 active

根因分析

在高查询负载下,分片请求缓存增长过大,导致频繁逐出,增加堆压力并降低性能。

English

The shard request cache grows too large under high query load, causing frequent evictions that increase heap pressure and degrade performance.

generic

官方文档

https://www.elastic.co/guide/en/elasticsearch/reference/current/shard-request-cache.html

解决方案

  1. Reduce cache size by setting `indices.requests.cache.size: 1%` in `elasticsearch.yml` to limit heap usage.
  2. Use explicit query caching with `?request_cache=true` only for queries that benefit from it, and set `index.requests.cache.enable: false` on indices with high write volume.
  3. Monitor cache eviction rates via `GET _nodes/stats/indices/request_cache` and optimize queries to reduce cache churn.

无效尝试

常见但无效的做法:

  1. 70% 失败

    Larger heap delays evictions but doesn't solve the root cause of excessive caching; cache can grow unbounded and cause GC issues.

  2. 65% 失败

    Disabling cache increases query latency for repeated queries, especially in dashboards or reporting scenarios.