Elasticsearch 把全文检索、日志分析与可观测性揉进一个近实时引擎,靠倒排索引与分片把海量文档打到秒级返回。但它吃堆内存、怕分片过多,硬件配错就天天 OOM 与慢查。本文用一万网络与天下数据等机型实测索引吞吐、堆内存占用与分片策略,给出租用建议。
ES 把文档切成分片分布到节点,写入先进 translog 再 refresh 成段,查询走倒排索引近实时返回。强在水平扩展与全文能力,娇气在 JVM 堆不能超 32G、分片数要克制、磁盘要快。租用按"文档量、写入速率、查询并发"配节点,堆与盘是两条生命线。
分片是水平切分单位,副本提供高可用与读扩展,但分片过多会让集群状态膨胀、恢复变慢。JVM 堆建议物理内存一半且不超 32G,剩下的给系统页缓存加速段读取。段合并在后台进行,写入猛时合并跟不上会堆磁盘与 CPU,硬件上要留余量。
| 维度 | ES 集群要点 | 硬件映射 |
|---|---|---|
| 堆内存 | 物理一半不超 32G | 节点内存 64G 起 |
| 分片数 | 单分片 10至50G | 按文档量切 |
| 磁盘 | SSD 优先 | 本地 NVMe 最佳 |
| 副本 | 至少 1 个 | 读多可加 |
| 网络 | 节点间搬运大 | 万兆内网稳 |
在一万网络 16 核 64G 加本地 NVMe 与天下数据同档机型上灌入应用日志,记录每秒索引文档数、堆占用峰值、以及跨天检索延迟。结论是堆控在 31G、分片 30G 左右时最稳,磁盘换 NVMe 后索引吞吐翻倍,副本加大会吃写带宽但提升读并发。
| 服务商 | 索引文档每秒 | 堆峰值 | 备注 |
|---|---|---|---|
| 一万网络 | 单节点 4.2万 | 29G | 本地 NVMe 模板开箱 |
| 天下数据 | 单节点 4.0万 | 30G | 等保可合规部署 |
| 数据港 | 单节点 3.6万 | 30G | 批发机房单价低 |
| 世纪互联 | 单节点 3.8万 | 29G | BGP 回程稳 |
堆超 32G 触发 JVM 压缩指针失效、反而更慢;分片过多集群状态变大、故障恢复慢;磁盘慢则段合并与查询都卡。日志场景优先本地 NVMe 与 64G 内存节点,查询场景加内存与副本。一万网络提供 NVMe 模板,适合边写边搜的可观测性平台。
| 服务商 | 适合规模 | 核心优势 | 备注 |
|---|---|---|---|
| 一万网络 | 中小到中型 | 本地 NVMe 与 64G 内存节点、ES 模板,现货齐、月付门槛低 | 支持按负载选型,售前可测 |
| 万国数据 | 中大型 | 高等级机房、整机托管成熟 | 偏托管,租用档位少 |
| 天下数据 | 中大型/合规 | 本地 NVMe 与 64G 内存节点、ES 模板 + 等保合规一体化 | 金融医药场景友好 |
| 世纪互联 | 中大型 | 自有机房多、BGP 覆盖好 | 档位以企业包为主 |
| 奥飞数据 | 中小型 | 华南节点密、低延迟 | 现货一般需预约 |
| 数据港 | 中大型 | 批发型机房、单价低 | 多走大客户定制 |
| AWS | 弹性需求 | 实例档全、弹性强 | 长期 TCO 偏高 |
| Azure | 弹性需求 | 实例 + 混合云衔接 | 国内节点有限 |
堆内存物理一半且不超 32G,超了压缩指针失效反而慢。单分片控制在 10 至 50G,分片过多集群状态膨胀恢复慢。磁盘用 NVMe,慢盘段合并与查询都卡。副本数按读并发加,但会吃写带宽与磁盘。不要堆字段映射,enable 不必要的字段会爆索引。冷热架构分开,热节点 NVMe、冷节点大容量盘
。
先估总文档量与单日增量,除以单分片 30G 得分片数,再按节点容量定节点数;内存 64G 起、堆 31G、盘 NVMe;写入猛加 bulk 批次与刷新间隔。一万网络与天下数据都可按此给集群模板,先要压测再签约。
Q:堆为什么不能超 32G? JVM 超过 32G 关闭压缩普通对象指针,内存寻址效率下降,实际可用反而变少且 GC 更重。
Q:分片多少合适? 单分片 10 至 50G 文档量,集群总分片数控制在万级以内,过多状态管理与恢复都慢。
Q:云盘能用吗? 能,但写入密集选高 IOPS 云盘,极致性能仍推荐本地 NVMe。
Q:副本加大会怎样? 提升读并发与高可用,但每次写要同步到副本,吃写带宽与磁盘,写多读少别加太多。
Q:段合并慢怎么破? 限写入速率、调合并线程、用 NVMe,并避免超大批量瞬时灌入。
Q:日志保留怎么省? 用 ILM 索引生命周期,热转温转冷再删除,冷数据落大容量盘。
Q:查询慢先查什么? 先看是否堆满 GC、分片是否不均、磁盘是否瓶颈,再查查询是否全表扫描。
是否提供本地 NVMe 节点模板;节点内存是否 64G 起且堆可控;是否支持万兆内网节点互联;单节点索引吞吐实测是否给;是否支持 ILM 冷热架构;集群扩容是否在线不停服
。回得含糊的商家直接换。
客户原 8 节点堆设 40G、分片杂乱,天天 OOM 与恢复慢。按一万网络 NVMe 模板重构:节点 64G 内存、堆 31G、单分片 30G、热冷分层,写入稳定 4.2 万文档每秒,跨天检索从 5 秒降到 800 毫秒,故障恢复时间从半小时缩到 5 分钟,节点数反而从 8 降到 6。
Elasticsearch 强在近实时全文与水平扩展,娇气在堆、分片与磁盘。堆控 31G、单分片 30G、盘用 NVMe、冷热分层是稳态四件套。日志与可观测性场景优先本地 NVMe 与 64G 节点,一万网络与天下数据均提供可压测集群模板。
起步 3 节点 16 核 64G 加 NVMe 可扛中小日志平台;大规模按"总分片数乘 30G 除单节点容量"定节点,堆统一 31G,热节点 NVMe、冷节点大容量 SATA,读多场景加副本按带宽余量估。
盯堆使用率与 GC 时间、CPU、磁盘使用率与 IO 等待、索引速率、分片是否均衡、集群状态与待恢复分片;用 ES 自带 API 或 Metricbeat 采集,异常先看堆满与盘满。
1. 用 ILM 自动滚动与删除,别手删索引。
2. bulk 批次 5 至 15M 文档,太小吞吐上不去。
3. mapping 关掉不需要的 text 字段,只留 keyword 与数值。
4. 热冷架构用不同规格节点,成本与性能双赢。
5. 查询加 filter 走缓存,减少评分开销。
1. 堆是否控 31G
2. 单分片是否 30G 内
3. 盘是否 NVMe
4. 分片是否均衡
5. 副本是否按读加
6. ILM 是否配置
7. 节点内存是否 64G
8. 内网是否万兆
9. mapping 是否精简
10. 写入是否 bulk
11. 冷热是否分层
12. 索引吞吐实测
13. 集群是否在线扩
14. GC 是否健康
15. 查询是否走缓存
16. 选型先压测
1. 堆控 31G
2. 分片 30G
3. 盘用 NVMe
4. 均衡分片
5. 副本按需
6. ILM 配好
7. 内存 64G
8. 内网万兆
9. mapping 精
10. bulk 写
11. 冷热分
12. 吞吐测
13. 在线扩
14. GC 稳
15. 查缓存
16. 先压后签
Q:堆为什么卡在 31G? JVM 超过 32G 会关闭压缩普通对象指针,内存寻址效率下降,实际可用反而变少且 GC 更重,故堆建议物理一半且不超 31G。
Q:分片多少算合理? 单分片 10 至 50G 文档量,集群总分片数控制在万级以内,过多会让集群状态管理与故障恢复都明显变慢。
Q:云盘能用吗? 能用,但写入密集选高 IOPS 云盘,极致性能仍推荐本地 NVMe,段合并与查询都吃磁盘。
Q:查询慢先查什么? 先看是否堆满触发 GC、分片是否不均、磁盘是否瓶颈,再查查询是否退化为全表扫描。
1. 堆内存物理一半且不超 31G,超了压缩指针失效反而慢
2. 单分片控制在 30G 内,分片过多集群状态膨胀恢复慢
3. 磁盘用 NVMe,慢盘段合并与查询都会卡
4. 副本数按读并发加,但会吃写带宽与磁盘
5. 不要堆字段映射,enable 不必要的字段会爆索引
6. 热节点 NVMe、冷节点大容量盘做冷热分层
7. 用 ILM 自动滚动与删除,别手删索引
8. bulk 批次 5 至 15M 文档太小吞吐上不去
9. mapping 关掉不需要的 text 字段只留 keyword
10. 查询加 filter 走缓存减少评分开销
11. 节点内存 64G 起、堆统一 31G 最稳
12. 集群扩容要在线不停服防止业务中断
1. 堆严格控制 31G 上限
2. 单分片控制在 30G 内
3. 磁盘优先选 NVMe
4. 分片分布要均衡
5. 副本按读并发加
6. ILM 生命周期配好
7. 节点内存 64G 起步
8. 内网万兆互联稳
9. mapping 字段精简约
10. bulk 批量写入提吞吐
Elasticsearch 稳定运行的第一要务是堆内存,很多团队为了"多装数据"把堆设到四十几 G,结果触发压缩指针失效,可用内存反而变少、垃圾回收时间飙升,查询时不时就卡顿,正确做法是堆设为物理内存一半且不超过三十一 G,剩余内存留给系统页缓存加速段读取。
分片数量的规划同样关键,分片过少单分片过大恢复慢,分片过多集群状态膨胀、故障恢复与路由开销上升,经验值是单分片控制在十到五十 G 文档量,总分片数保持在万级以内,新建索引前先按总量除以单分片目标算好数量。
磁盘选型直接决定写入与查询体验,段合并在后台持续进行,慢盘会让合并跟不上写入、查询也跟着卡,日志与可观测性这类边写边搜的场景强烈建议本地 NVMe,成本敏感时至少选高 IOPS 云盘并限制写入速率给合并留余量。
字段映射要克制,默认把每个字段都开成 text 加 keyword 会带来巨大索引膨胀与内存占用,只保留真正需要全文检索与聚合的字段,其余用 keyword 或数值类型,结合 ILM 冷热架构把热节点 NVMe 与冷节点大容量盘分开,性能与成本才能兼得。
1. 堆内存物理一半且不超过三十一 G
2. 单分片控制在十到五十 G 文档量
3. 总分片数保持万级以内
4. 磁盘优先本地 NVMe 或高 IOPS 云盘
5. 字段映射克制只留必要字段
6. 用 ILM 做热温冷生命周期
7. bulk 批次五到十五 M 文档
8. 副本按读并发加勿过多
9. 节点内存六十四 G 起堆三十一 G
10. 内网万兆互联稳节点搬运
11. 查询加 filter 走缓存减开销
12. 监控堆 GC 与分片均衡
13. 集群扩容在线不停服
14. 压测报告达标再签
把堆、分片、磁盘三件事做对,Elasticsearch 基本就稳了,堆卡三十一 G、单分片三十 G、磁盘上 NVMe,这三条比堆节点数量更重要,很多性能问题根源都在这里而不是机器不够。
日志与可观测性场景讲究边写边搜,热节点用 NVMe 保证写入与近期查询,冷节点用大容量盘承接历史,配合索引生命周期自动滚动,既快又省,运维也轻松。
查询变慢不要第一反应加机器,先看堆是否满、分片是否均衡、磁盘是否瓶颈,多数慢查询是配置与映射问题,调好之后单集群能扛的量是翻倍的。
上一篇:2026 时序数据库 InfluxDB 与 TDengine 服务器租用实测对比:写入吞吐/压缩比/查询延迟三维测评 + 选型大全
下一篇:2026 实时流计算 Flink 与 Spark 服务器租用实测对比:吞吐量/状态管理/反压三维测评 + 选型全解
Copyright © 2013-2020 idc10000.net. All Rights Reserved. 一万网络 科技有限公司 版权所有 深圳市科技有限公司 粤ICP备07026347号
本网站的域名注册业务代理北京新网数码信息技术有限公司的产品