Elasticsearch之性能优化
elasticsearch 使用有时候会出现CPU飙升,内存爆满情况,需要进行一些优化设置。
1. 一定要用es自带id生产策略
2. 设置副本数量为0,写入完可恢复
put localhost:9200/_settings {"number_of_replicas":0}
3. 关闭刷新,写入完成后可打开
put localhost:9200/_settings { "refresh_interval" : "-1"}
4. 异步写硬盘,增大写的速度
put localhost:9200/_settings {"translog.durability": "async"}
"index.translog.durability": "async",
"index.translog.sync_interval": "30s"
5. 测试每次bulk数据条数,逐渐增加数量或者减少数量找到最优。
6.配置文件增加配置项
indices.memory.index_buffer_size: 20% indices.memory.min_index_buffer_size: 96mb 已经索引好的文档会先存放在内存缓存中,等待被写到到段(segment)中。缓存满的时候会触发段刷盘(吃i/o和cpu的操作)。默认最小缓存大小为48m,不太够,最大为堆内存的10%。对于大量写入的场景也显得有点小。
7. 设置节点之间的故障检测配置,例如以下elasticsearch.yml配置
设置节点之间的故障检测配置,例如以下elasticsearch.yml配置
大数量写入的场景,会占用大量的网络带宽,很可能使节点之间的心跳超时。并且默认的心跳间隔也相对过于频繁(1s检测一次)
此项配置将大大缓解节点间的超时问题
分类:
搜索引擎, Elasticsearch
【推荐】FlashTable:表单开发界的极速跑车,让你的开发效率一路狂飙
【推荐】Flutter适配HarmonyOS 5知识地图,实战解析+高频避坑指南
【推荐】博客园的心动:当一群程序员决定开源共建一个真诚相亲平台
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一次 .NET 性能优化之旅:将 GC 压力降低 99%
· MySQL索引完全指南:让你的查询速度飞起来
· 一个字符串替换引发的性能血案:正则回溯与救赎之路
· 为什么说方法的参数最好不要超过4个?
· C#.Net 筑基-优雅 LINQ 的查询艺术
· 一次 .NET 性能优化之旅:将 GC 压力降低 99%
· 32岁入行STM32迟吗?
· C#.Net筑基-泛型T & 协变逆变
· 花150元,我用 AI 做出了千万播放的爆款视频!保姆级教程+完整提示词
· 【EF Core】DbContext是如何识别出实体集合的