如何在Hibernate Search中提高海量索引器的性能

时间:2016-06-15 13:37:53

标签: elasticsearch hibernate-search

我正在运行FullTextEntityManager.createIndexer()以在包含大约400000条记录的表上的elasticsearch中创建索引。

所花费的时间实际上是不可接受的。在互联网上搜索后,我尝试增加堆大小(最小1g和最大6g),将打开文件描述符的数量设置为64000,仍然没有很好的改进。我已将用于配置索引器的不同值的测量值粘贴下来:

Threads Batch Time    ESmin  ESmax
10       30     7min
10       100    5min
10       1000   5min
20       100    4min
20       1000   9min
5        500    6min
20       500    4min    1g    6g 
10       500    4min    1g    6g  
5        1000   6min    1g    6g
10       1000   5min    1g    6g 

这只是一个poc,生产数据有十亿条记录。有人可以给我一些意见,说明如何将性能提高到可接受的水平。

请注意,在休眠时我使用的是cp30连接池,其设置如下所示:

<property name="hibernate.c3p0.min_size" value="5"/>
<property name="hibernate.c3p0.max_size" value="20"/>
<property name="hibernate.c3p0.timeout" value="1800"/>
<property name="hibernate.c3p0.max_statements" value="50"/>

感谢!!!

0 个答案:

没有答案