ElasticSearch 性能优化
发布时间:2024年01月04日
提升写入性能
使用 bulk 接口批量写入
- 节省重复创建连接的网络开销
- 通过进行基准测试来找到最佳的批处理数量
延长 refresh 的时间间隔
- 通过延长 refresh(刷新)的时间间隔可以降低段合并的频率,段合并十分耗费资源
- 默认的刷新频率为1s,对 index 修改 index.refresh_interval 即可立即生效
初始化性能的大量写入
- 比如 reindex 或是导入基础数据这种一次性批量索引操作
- 可以配置成不刷新,并且把副本数也配置成0,完了之后再设置成正常值
关闭操作系统的 swapping
- 操作系统会自动把不常用的内存交换到磁盘(虚拟内存),关闭后就不会进行交换
使用内部id
合理设置分片和副本数量
提升查询性能
给文件系统(filesystem cache)预留足够内存
- es 非常依赖操作系统的文件缓存来提高查询速度
- 预留至少一半的内存给文件系统缓存
使用 ssd 磁盘而且别用远程磁盘
- es需要频繁读取磁盘
不要使用关联关系
尽可能搜索少的字段
避免使用脚本
- 脚本非常耗性能,因为每次计算且无法缓存
- 如果非用不可,就用 painless 或者 expressions
强制合并只读索引
节省磁盘空间
数字类型用最小数字类型
byte < short < integer < long
参考博客
官网性能优化建议
[1]https://www.elastic.co/guide/en/elasticsearch/reference/8.11/how-to.html
[2]https://pdai.tech/md/db/nosql-es/elasticsearch-y-peformance.html
文章来源:https://blog.csdn.net/zzti_erlie/article/details/135387998
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:chenni525@qq.com进行投诉反馈,一经查实,立即删除!