做了一次Lucene3.0.1的性能测试 Lucene3.0.1 Benchmark

由于工作需要,对Lucene的性能进行了一次摸底,包括建立索引,检索等等。

软件环境如下:

windows server 2008 x64

Java HotSpot(TM) 64-Bit Server VM (build 16.3-b01, mixed mode)

硬件环境如下:

XEON 5530 x 2

16G RAM

数 据为各大重点新闻媒体网站的相关稿件(标题和正文)

索引文件大小:

100万条稿件为3.77G

500万条稿件为 19.5G

1000万条稿件为39.5G

针对这三个索引文件进行了4次并发检索的测试。其中100w数据的索引文件做了两次,分 别使用了FSDirectory和RAMDirectory

有机会找一台64G内存的机器,试试看1000w数据的RAMDirectory

四 次测试的jvm参数均为:-Xmx8g -Xms8g -Xmn2g -XX:PermSize=1g -Xss512k

建立索引、检索 均使用了IKAnalyzer作为中文分词器

并发测试中,每个线程均进行10000次检索,检索词为某搜索引擎的Top10000热词

测 试结果如下:(时间单位为毫秒)

数据量

平均时间

最小时间

最大时间

100w FS

80.527574

0

2800

100w RAM

15.719914

0

2103

500w FS

157.1175

0

6514

1000w FS

327.584485

0

12189



由此可以看出RAMDirectory确实要比FSDirectory快很多。另外在测试过程中还发现,前者会使cpu所有核心都满负荷,而后者只利用了 50%。还有就是随着索引的增大,不得不减小了并发量,否则都不知道何时能跑完测试。通过VisualVM观察了下jvm的状态,还有很大的调优空间,需 要认真计算下才行。希望能做到1000w数据50并发的平均检索时间小于100ms。

加载评论框需要翻墙