Elasticsearch(ES)是基于 JVM 的搜索引擎,堆内存(Heap)调优直接影响查询性能、写入吞吐和稳定性。下面从原则 → 参数 → 监控 → 常见坑系统讲一下。
✅ 推荐值
# jvm.options
-Xms16g
-Xmx16g
⚠️ 不要只设一个,避免动态扩容
-XX:+UseG1GC
优点:
可选参数(高并发场景):
-XX:MaxGCPauseMillis=200
-XX:G1ReservePercent=25
sudo swapoff -a
或
bootstrap.memory_lock: true
并确保系统允许锁定内存
_sourcefrom + size 很大)search_afterscroll(仅导出)bulk size ≤ 5–15 MB
并发线程数 ≤ CPU 核数 * 2
过大 bulk → 堆暴涨
enabled: falsedoc_values: falsetext + keyword 双份存储(按需)ulimit -n 65535
sysctl -w vm.max_map_count=262144
jvm.heap.used_percent < 75%_nodes/stats/jvm| 问题 | 原因 | 解决 |
|---|---|---|
| Full GC 频繁 | 堆太小 | 增大堆 |
| 节点离线 | 堆 > 31G | 降到 31G 内 |
| 查询慢 | Page Cache 不足 | 减小堆 |
| OOM | bulk 太大 | 减小 bulk |
ES 堆内存调优的本质是:
给 JVM 足够但不多的内存,把剩下的留给操作系统缓存。
如果你愿意,我可以:
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。