lucene索引优化前后性能对比及优化方针
来源:互联网 发布:北京ds数据精灵 编辑:程序博客网 时间:2024/04/29 11:17
针对目前线上产品进行压力,发现不少问题,现在做个总结
我们的产品是一个问答系统,主要核心技术是lucene搜索,针对不同实例,分成不同的索引目录,有N个实例会存在N个indexwriter
目前测试数据量及环境如下:
6核4G
数据量1000万
问题字数:平均14个字
问题答案字数:平均418个字
优化前1000万数据量需要构建索引16个小时,IO已经极限
优化后1000万数据量针对不同实例对比如下
索引构建所并发数
单实例构建索引
两个实例两个线程并发构建索引
三个实例三个线程并发构建索引
内存优化时间
182655毫秒 3分钟
实例1
192110毫秒 3.20分钟
实例1
189883毫秒 3.164分钟
实例2
192114毫秒 3.20分钟
实例2
189889毫秒3.164分钟
实例3
189879毫秒 3.164分钟
磁盘优化时间
1514423毫秒 25分钟
实例1
3820694毫秒 63.678分钟
实例1
4874940毫秒 81.249分钟
实例2
3322985毫秒 55.383分钟
实例2
4579260毫秒 76.321分钟
实例3
4807620毫秒 80.127分钟
单独构建索引的时间
4663807毫秒 1.295 个小时
实例1
7867191毫秒 2.185小时
实例1
13925086 毫秒 3.868 小时
实例2
7776207毫秒 2.16小时
实例2
14423098 毫秒 4.006小时
实例3
14349161 毫秒 3.985小时
构建索引和优化总时间
6196072毫秒 1.721 小时
实例1
11811529毫秒 3.28小时
实例1
18991299毫秒 5.275小时
实例2
11202412毫秒 3.11小时
实例2
19212047毫秒 5.336小时
实例3
19356620毫秒 5.376小时
优化方针:
1、多线程构建索引
采用jdk1.5提供的线程池多线程构建索引
2、构建索引的脚本调优
采用游标方式抓取数据而不是分页抓取数据
3、lucene api调优
indexwriter.setRAMBufferSizeMB(256);// M
indexwriter.setUseCompoundFile(false);// 多文件索引
indexwriter.setMergeFactor(10);
- lucene索引优化前后性能对比及优化方针
- Tomcat 优化前后的性能对比
- Tomcat 优化前后的性能对比
- tomcat7 优化前后对比
- Tomcat 7配置文件优化:前后的性能对比
- 前后台性能优化
- Lucene.net索引优化
- lucene-优化索引
- Oracle优化方针!
- Lucene性能优化
- lucene性能优化
- Tomcat 7优化前及优化后的性能对比
- Tomcat 7优化前及优化后的性能对比
- Tomcat 7优化前及优化后的性能对比
- Tomcat 7优化前及优化后的性能对比
- Tomcat 7优化前及优化后的性能对比
- Tomcat 7优化前及优化后的性能对比
- TOMCAT 7优化前及优化后的性能对比
- TOMCAT与Resin之比较
- Putty自动登陆远程Linux主机
- WAVE PCM soundfile format
- MyEclipse下设置合适的Content Assist快捷键(诀窍)
- finalize()和system.gc()的区别
- lucene索引优化前后性能对比及优化方针
- hadoop 运行 wordcount
- linux 禁止远程访问、禁止访问重要文件
- 通过调节索引 优化Oracle关联查询性能
- Prebuild Command line(Copy)
- 我的博客启动了
- 二叉树中两个节点的最近的公共父节点
- OR Mapping
- POJ 1269