马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
x
Elasticsearch 写入性能优化常见手段重要有以下 10 个方向,建议根据具体业务场景组合使用:
- 使用_bulk API 批量提交文档
- 建议每批次 5-15MB 数据量
- 并发执行多个批量请求
- PUT /my_index
- {
- "settings": {
- "index.refresh_interval": "30s", // 降低刷新频率
- "index.number_of_replicas": 0, // 写入时禁用副本
- "index.translog.durability": "async" // 异步translog
- }
- }
复制代码
- 使用 SSD 磁盘(IOPS 提升 10 倍+)
- 预留 50% 内存给文件系统缓存
- 设置合理的 JVM 堆内存(建议不超过 32GB)
- 制止嵌套文档(Nested)范例
- 禁用不需要的字段索引
- "my_field": {
- "type": "keyword",
- "index": false // 不索引该字段
- }
复制代码
- 单个分片大小控制在 20-50GB
- 分片数 = 节点数 × 1.5(写入麋集型场景)
- 使用 routing 路由写入
- thread_pool:
- write:
- size: 16 # 根据 CPU 核数调整
- queue_size: 1000
复制代码
- 禁用 _source 字段(节流 30%+ 存储)
- PUT /my_index
- {
- "_source": {
- "enabled": false
- }
- }
复制代码- "index.merge.policy": {
- "max_merged_segment": "5gb",
- "segments_per_tier": 10
- }
复制代码
- 专用协调节点处理写入请求
- 冷热分离架构(Hot-Warm)
- 使用 Ingest Pipeline 预处理数据
- # 查看写入延迟
- GET _nodes/hot_threads
- # 监控 segment 状态
- GET /_cat/segments?v
复制代码 典范优化结果对比:
优化项默认配置优化配置吞吐提升批量写入单文档5MB批次10x+刷新间隔1s30s3x副本数102x线程池队列20010005x 注意事项:
- 日志类场景建议禁用副本,搜索类场景保留副本
- 调优后需持续监控 CPU/IO 使用率
- 定期执行 _forcemerge 减少 segment 数量
- 7.x+ 版本建议使用时序模式(Time Series)
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |