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+
相关推荐
你这个代码我看不懂1 天前
引用计数法存在的问题
java·jvm·算法
NWU_白杨1 天前
Object类与阻塞队列
java
大福猫1 天前
#一个33岁新手小白在黑马学习程序员的第四天-1
java
Java基基1 天前
Idea 插件推荐可直接修改jar包内文件的IDEA插件,无需解压
java·ide·intellij-idea
刘大猫.1 天前
java工具:《返回字符串非零的最后一个层级》
java·字符串·java字符串·返回非零层级·解析字符串
左左右右左右摇晃1 天前
Java笔记 —— 值传递与“引用传递”
java·开发语言·笔记
2301_792674861 天前
java学习day22
java
Elasticsearch1 天前
快速 vs. 准确:衡量量化向量搜索的召回率
elasticsearch
GIS数据转换器1 天前
洪水时空大数据分析与评估系统
大数据·人工智能·机器学习·数据挖掘·数据分析·无人机·宠物
rainbow7242441 天前
企业AI学习体系选型与构建:内部培训、外部引进与实战项目的深度结合方案
大数据·人工智能