我正在运行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"/>
感谢!!!