Elasticsearch 性能优化?
Elasticsearch 面试题发布于
一、写入优化
- 批量写入(Bulk API),减少网络开销。
- 增加 refresh_interval(如 30s),减少 refresh 频率。
- 关闭副本,写完再开。
- 用 SSD 存储。
- TransLog 异步刷盘。
二、查询优化
- 用 filter 替代 query 做过滤。
- 避免深度分页,用 search_after。
- 只查需要的字段(_source 过滤)。
- 合理设置分片数,避免分片过多。
三、索引设计
- 合理映射,避免默认动态映射。
- keyword 类型精确查询,text 类型全文检索。
- 大字段 store=false,不存储原始值。
- 索引生命周期管理(ILM),冷热数据分离。
四、集群优化
- 主分片数 = 节点数或倍数。
- 副本数根据读压力和可用性调整。
- 内存:堆内存不超过 32GB,留给文件系统缓存。
- 路由:自定义路由,把相关数据放同一分片。
五、常见问题
- 慢查询:检查查询语句、分片数、索引设计。
- OOM:检查聚合、深度分页、字段数量。
- 集群黄/红:检查分片分配、节点状态。