浅谈Solr和ElasticSearch建索引性能优化策略
2016-04-27 18:51
387 查看
由于Solr和ElasticSearch都是基于Lucene构建的,所以他们之间有很大程度的相似性,故而他们的一些优化策略基本也是通用的,面对越来越多的海量数据,如何优化全量索引的写入性能呢? 散仙简单总结了下面几个方向的优化策略,如有疑问,欢迎拍砖。
(一)硬件优化:
(1)CPU加大,有利于并发写入
(2)内存提升,加大写入缓冲
(3)磁盘IO,使用SSD或者IO读写更快的磁盘
(4)网络IO,保证客户端与服务端的通信带宽充足
(二)服务端框架优化:
(1)加大shard的数目,理论上shard越多,写入速度越快
(2)设置较大的索引flush触发条件,ramBufferSizeMB 或者 maxBufferedDocs
(3)写索引时,关闭副本,因为同步索引会大大降低写入速度
(4)监控GC,调整JVM参数
如果Full GC频繁,加大JVM堆内存,
如果Yong GC频繁,加大新生代的比例,如果使用的是CMS垃圾收集器,必要时,可以关闭survive区,避免survive区和Eden区来回拷贝
(5)尽量使用稳定的新版本如JDK和框架本身
(6)内存大的,可以尝试G1垃圾收集器
(三) 客户端优化
(1)如果公司有大数据部门,可以使用Hadoop或者Spark分布式集群构建索引
(2)如果公司没有大数据产品,可以使用多线程或者多进程并行构建索引
(3)使用批量提交
(4)减少commit次数,让服务端控制flush索引,索引完成之后,可手动commit一次。
有什么问题可以扫码关注微信公众号:我是攻城师(woshigcs),在后台留言咨询。
技术债不能欠,健康债更不能欠, 求道之路,我们同行。
相关文章推荐
- 巧用mysql提示符prompt清晰管理数据库的方法
- 两大步骤教您开启MySQL 数据库远程登陆帐号的方法
- 在Eclipse中运行Solr 基础知识
- java Lucene 中自定义排序的实现
- phpmyadmin 4+ 访问慢的解决方法
- linux系统下实现mysql热备份详细步骤(mysql主从复制)
- CentOS 5.5下安装MySQL 5.5全过程分享
- MySQL复制的概述、安装、故障、技巧、工具(火丁分享)
- MySQL中删除重复数据的简单方法
- 使用Java的Lucene搜索工具对检索结果进行分组和分页
- 使用ElasticSearch6.0快速实现全文搜索功能的示例代码
- elasticsearch批量数据导入和导出
- Solr 5.3.0集成mmseg4j、tomcat部署、Solrj 5.3.0使用
- 关于lucene搜索时排序的问题
- 从零开始使用Hubbledotnet进行全文搜索-前言
- Solr基础--设置solr/home的三种方式
- windows下安装solr5.5.0
- Docker使用supervisor构建solr
- 使用ElasticSearch+LogStash+Kibana+Redis搭建日志管理服务
- solr4.0安装和简单导入mysql数据