在使用使用solr时,当我们的数据量比较大时,我们就要考虑对solr内存进行调优了,不然solr程序就会通过oom脚本将solr实例杀死,导致程序无法正常使用。如果在使用过程中遇到oom,可参考如下解决方案
- 在solr启动时指定内存
./solr start -m 1g
这样在solr启动时就可以为JVM指定最小(-Xms)和最大(-Xmx)堆大小
- 第二种方法是修改solr.in.sh脚本
在solr的bin目录下找到solr.in.sh脚本,修改SOLR_HEAP或设置SOLR_JAVA_OPT参数,建议设solr jvm参数。如果我们设置的是solr堆的大小,那么solr的内存启动就会设置为堆的默认值,这不太符合实际使用场景。设置jvm,启动时solr会以最小内存为初始值启动,在使用中内存动态的去增加缩减所需内存,并且内存最大使用值不会好过Xmx的值。 - 第三种,是在data-config.xml中的dataSource的数据连接配置中添加“batchSize”参数,这样在批量导入时,连接数就会被限制。
batchSize:The batchsize used in jdbc connection. Use a value of '-1' in case of setFetchSize() exception
网友评论