Elasticsearch 的一些默认配置上下限

1. 内存配置

配置项 下限 推荐值 上限 说明
堆内存(Heap Size) 1GB(生产4GB+) RAM的50% 32GB 超过32GB会因Java指针压缩失效导致性能下降
虚拟内存区域(vm.max_map_count) 262144 262144 低于此值启动失败
堆外内存 至少1GB RAM的50% 为Lucene预留,大集群需更多

2. 文件与I/O配置

配置项 下限 推荐值 上限 说明
文件描述符 4096 65535+ 65536(OS限制) 生产环境强制要求
磁盘空间 50%可用 85%使用 超过85%会只读
分片磁盘占用 10-50GB/分片 超过50GB影响恢复性能

3. 分片(Shard)配置

配置项 下限 推荐值 上限 说明
每节点分片数 20-30/GB堆 1000/节点 默认限制
分片文档数 5000万-1亿 Int的最大值/分片 超过2亿性能骤降
分片大小 10-50GB/分片 大分片恢复慢
总分片数 受堆内存限制、集群节点数

4. 索引配置

配置项 下限 推荐值 上限 说明
字段映射数 1000(默认) index.mapping.total_fields.limit
索引恢复速率 1MB/s 40MB/s indices.recovery.max_bytes_per_sec
索引速率 受硬件限制

5. 查询限制

配置项 下限 默认 上限 说明
结果窗口 10000 Int最大值 index.max_result_window
聚合桶数 10000 search.max_buckets
批量请求大小 5-15MB 避免OOM

6. 节点配置

配置项 下限 推荐值 上限 说明
主节点数 1 3(生产) 必须奇数
数据节点数 1 ≥2 根据数据量调整
节点类型 专用角色 生产环境建议分离角色

关键限制总结

  1. 绝对不可突破的硬性限制

    • 分片文档数:2,147,483,519(Lucene限制)
    • 堆内存:32GB
    • 文件描述符:65536(OS限制)
  2. 官方强烈建议不要超过的推荐限制

    • 分片文档数:200,000,000
    • 每节点分片数:1000
    • 磁盘使用率:85%
    • 结果窗口:100,000
  3. 性能最佳实践

    • 分片文档数:5000万-1亿
    • 分片大小:10-50GB
    • 堆内存:RAM的50%且≤32GB
    • 文件描述符:65535+
相关推荐
CV_J4 小时前
安装kibana
java·elasticsearch·spring cloud·docker·容器
码农水水6 小时前
国家电网Java面试被问:TCP的BBR拥塞控制算法原理
java·开发语言·网络·分布式·面试·wpf
InterestOriented7 小时前
破解银发学习痛点 兴趣岛 “普惠 + 品质” 模式打造积极老龄化范本
大数据·人工智能·学习
qq_336313937 小时前
java基础-网络编程-TCP
java·网络·tcp/ip
咕噜咕噜啦啦7 小时前
Java期末习题速通
java·开发语言
盐真卿8 小时前
python2
java·前端·javascript
一嘴一个橘子8 小时前
mybatis - 动态语句、批量注册mapper、分页插件
java
组合缺一9 小时前
Json Dom 怎么玩转?
java·json·dom·snack4
危险、9 小时前
一套提升 Spring Boot 项目的高并发、高可用能力的 Cursor 专用提示词
java·spring boot·提示词
kaico20189 小时前
JDK11新特性
java