es调优的方案
- 不同分片之间的数据同步是一个很大的花费,默认是1s同步,如果不要求实时性,可执行如下
"settings":{
"index":{
"refresh_interval": "60s"
}
} - 选择正确的存储
- 优化es的线程池
- jvm对老年代回收并没有很显著的效果,随着时间的推移内存还是不够,后来发现是es cache的问题,其实在集群建立的时候我们可以调成每隔节点的缓存比例,类型和大小缓存类型设置为soft reference,只有内存不够时才会进行回收
index.cache.field.max.size: 50000
index.cache.field.expire: 10m
index.cache.field.type: soft - 晚上资源空闲的时候可以合并一下索引
http://10.22.2.201:9200//_optimize - 查看分片是否异常
查询操作
查询不是简单的单步骤操作,查询一般来说分为2个阶段:
分散阶段:将查询分发到包含相关文档的多个分片中去执行查询
合并阶段:从众多的分片中收集返回结果,然后对他们进行合并,排序,后续处理
网友评论