Elasticsearch性能优化思路
Elasticsearch是个非常依赖文件缓存的一个数据库,优化主要有两个思路,一个是优化搜索的逻辑,一个优化缓存。
搜索逻辑的优化,可以考虑使用合理的索引设置,合理的搜索方法,使得搜索的路径短、返回快、消耗资源少
缓存的优化就比较多了,首先是文件缓存,就是服务器除了jvm之外的缓存,这部分需要预留的充足,然后就是存储的体积,存储的体积越小,文件缓存能缓存的部分就越多,读磁盘的次数就越少,相应的性能就能起飞。然后是jvm内的缓存,这个就涉及到了优化缓存的淘汰时间,缓存的结构等方向,如何提高缓存的命中率,合理延长缓存的生命周期就很重要了
优化方向与细节
分片数量
分片数量:合理的分片很重要,例如一台机是4核cpu,一共有3台机子,那么理论上分片数量在3*4=12个左右会有比较好的一个性能的利用,如果有副本的话,可以适当减少一些分片数量,不过实际上一个分片可能会有几个大的段存储,所以一个节点的分片数量比节点的cpu线程数少一些会比较好。
副本数量:
设置副本可以提高数据的一个安全性,最大的作用是防止数据丢失,同时提高一些搜索的性能和可用性,但是在源数据不在es即es的数据是从别的数据库同步过来的情况下,其实不用担心数据的丢失。es的副本是比较吃磁盘性能的,集群环境下拥有副本会增加磁盘的读写压力,当磁盘性能不够的时候,可以考虑不要副本。