Solr索引建立优化

测试环境的硬件情况:四台pc,20颗2核,内存256G,11盘1.4T。带宽为千兆网络,最快传输速度为140MB/S。

测试情况结论:

1、Solr在使用HDFS索引的建立速度远不如本地索引。但是我们在其它公司使用的都是HDFS索引,不至于这么慢。最有可能的情况是网络传输速度不够,因为在其它公司都是使用的双万兆网卡。

2、增加Solr的实例数量,可以增加Solr的分片数量,提高写入速度。

3、每行的数据量越大,也减慢写入速度,毕竟一行的数据字段数越多,一行数据的数据量越大。

4、由于我们只使用批量导入,不是会设计到近实时索引。所以我们禁用了soft commit。而且只在批量导入完成的时候,执行一次hard commit。这样做可以极大的降低solr的压力。因为每一次hard commit或者达到soft commit的阀值的时候,就会触发solr的索引handler更替,以及一系列动作。

禁用软提交的方法:

修改 /etc/default/solr1.in.sh,设置参数-Dsolr.autoSoftCommit.maxTime=-1 -Dsolr.autoCommit.maxTime=-1;

----HDFS版本
SOLR_JAVA_MEM="-Xms16g -Xmx16g -Dsolr.directoryFactory=HdfsDirectoryFactory -Dsolr.lock.type=hdfs -Dsolr.hdfs.home=hdfs://10.127.60.1:8020/solr7 -XX:MaxDirectMemorySize=20g -Dsolr.autoSoftCommit.maxTime=-1 -Dsolr.autoCommit.maxTime=-1 -XX:+UseLargePages -Dsolr.hdfs.blockcache.slab.count=100"

---本地
SOLR_JAVA_MEM="-Xms16g -Xmx16g -Dsolr.autoSoftCommit.maxTime=-1 -Dsolr.autoCommit.maxTime=-1 -XX:+UseLargePages"

SOLR_JAVA_MEM="-Xms32g -Xmx32g -Dsolr.autoSoftCommit.maxTime=-1 -Dsolr.autoCommit.maxTime=-1 -XX:+UseLargePages"

发表评论

电子邮件地址不会被公开。 必填项已用*标注