elasticSearch作为java后端和大数据核心的技术之一,肯定在面试当中它的性能调优肯定是要问的,看了好多人整理的性能调优方案,确实受益匪浅。自己整理一份简单的性能调优,能应付面试就行了。哈哈哈!!!
- 减小读写之间的资源抢占,读写分离
- 当检索请求数量很少的时候,可以减少甚至完全删除副本的分片,关闭segment的自动创建以达到高效利用内存的目的,因为副本的存在会导致主从之间频繁的进行数据同步,大大增加服务器的资源占用
Lucene的数据的fsync是发生在OS cache的,要给OS cache 预留足够的内存大小。
通用最小的算法,能用更小的字段就用更小的,keyword类型比int更快。
ignore_above:字段保留的长度,越小越好
调整_source字段,通过include和exclude过滤
store:开辟另一块存储空间,可以节省带宽。
注意:_source设置为false则不存储元数据,可以节省磁盘,并不影响搜索,但是禁用source也会存在弊端。
禁用all字段:all字段的包含所有的字端分词后的Term,作用是可以在搜索时不指定特定字段,从所有字段中检索,es 6.0之前需要手动的关闭
关闭Norms字段:计算评分用,如果你确定当前字段将来不需要计算评分,设置为false可以节省大量的磁盘空间,有助于提升性能。常见的比如filter和agg字段,都可以设为关闭
关闭index_options(谨慎使用,高端操作):词设置用于index time 过程中那些内容会被添加到倒排索引文件中。例如TF,docCount、postion、offset,减少option的选项可以减少在创建索引的CPU占用率,不过在实际场景中很难确定业务是否会用到这些信息,除非是在一开始就非常确定用不到,否则不建议删除。
上一篇:aop实现接口访问频率限制
下一篇:PubSub 发布订阅