关于Solr性能优化实践

先写个基本的内容,记录下这一阶段自己的测试情况。为了优化solr的建索引性能,我们做了很多尝试,所以也测试了很多种情况,结果虽然不能尽如人意,写下给大家也给自己留个参考吧。

环境情况

我们的主机性能一般,4-8个cpu、内存大概是16G内存;报文大小大概是0.2k左右。

测试情况

1、Hash路由模式
composited方式,性能最好的是在SSD磁盘下,用两个solr节点;有两个程序,每个程序2个线程,同时发,速度大概是5.8WTPS,折合成性能大概是15MB/s。

2、直接路由
implicit方式,性能竟然比composited方式差,在普通硬盘下,一个程序1个线程,2.8WTPS。
直接路由模式同时向一个collection发的话,速度大概是4.6WTPS。

3、多collection方式
两个collection情况下,确实可以提高建索引的速度,在普通磁盘下,同时向两个collection发,速度也可以达到5.8WTPS,如果同时向一个collection发达到速度只有4WTPS左右。

4、多机器集群测试
五台机器组成solr云集群:
用5个程序向5个solr的集群发第一轮测试结果: 7.8W,速度20MB/s。
5个程序, 10个线程,测试出来速度10WTPS,速度27MB/s。
资源占用大概每个6-9G内存,cpu的占用稳定在300%左右。

5、测试了数据合并
1)测试了多数据的合并,字段增加了,发现效率没有提升,还有所降低。
2)测试了字段多值问题,性能没有提升,而且不好分析。

结论

1、每个物理机器新建2个solr节点(数量根据资源来),然后每个程序启动2个线程,采用非直接路由模式速度更好。
2、如果直接路由模式,整体速度可能更好,直接路由模式整体速度更好,单机效果反而不好,可能我队列设置和线程数量设置有问题。

你可能感兴趣的:(关于Solr性能优化实践)