分享

solrcloud中shard 的replia导致solr服务一直down,如何解决?

cloudcat 发表于 2016-10-13 14:17:43 [显示全部楼层] 只看大图 回帖奖励 阅读模式 关闭右栏 4 27196
本帖最后由 cloudcat 于 2016-10-13 14:29 编辑

环境如下:
服务器:6台solr版本:4.10.3
solr索引大小:每个replia索引达到22G,如果每个core 3 个replia,那么 索引大小就是 22G * 6台服务器 * 3个replia =396G;如果每个core 无replia,那么索引大小为22*6=132G
solrconfig.xml:我配置了软提交,如下
        <autoCommit>
           <maxDocs>${solr.autoCommit.maxDocs:15000}</maxDocs>
           <maxTime>${solr.autoCommit.maxTime:20000}</maxTime>   
           <openSearcher>false</openSearcher>      
        </autoCommit>

        <autoSoftCommit>
           <maxDocs>${solr.autoSoftCommit.maxDocs:1000}</maxDocs>
           <maxTime>${solr.autoSoftCommit.maxTime:10000}</maxTime>
        </autoSoftCommit>


公司业务需求:每天实时索引,每天都要对solr删除,修改,新增。

第一种情况:每个core存在3个备份,删除,修改,新增索引时候,导致solr压力大,solr报警,红色,响应很慢(注意:此时通过监控界面,服务器运行良好,cup占用不到10%,内存占用不到35%)。solrcloud图如下:
备注:这两个solrcloud图不是同一个集群的,但是能反应我的问题

有备份

有备份


第二种情况:去掉每个core的备份,此时solr压力减小,无down掉服务情况,查询也快。如下图:

无备份

无备份


分析
1  有备份情况,磁盘IO和HDFS IO都很大,可以达到150m/s;无备份情况,这两个IO只有20m/s。应该索引同步导致IO变大,增大solr服务压力。
2  有备份情况,多个shard的leader是同一个服务器,图1的leader为slave1和slave2; 无备份的时候,6要服务器都是leader,由于增加、修改索引的时候都要通过leader,所以无备份情况明显压力分散到各个leader上去了。

问题:
1、对于第一种情况,这种备份方式是否正确,因为每个服务器有3个replia。是否应该分3个shard,两个备份,这样六台服务器每台就有一个core,生产环境中,你们是如何配置的?
2、
有备份情况,leader只有两个(slave1和slave2);无备份情况,每个服务器都是leader。在存在多个replia时候, 是否能对每个shard指定leader,让每个服务器都是leader,分散leader,减少压力?
3、
shard存在多个replia,索引同步会增加磁盘和hdfs IO,增加solr压力。为了容灾,每个shard肯定要有多个replia,我应该如何解决这个问题?


已有(4)人评论

跳转到指定楼层
easthome001 发表于 2016-10-13 15:38:34
从描述来看,磁盘的IO是问题。而瓶颈确实是磁盘,从硬件角度来讲,最好使用固态硬盘。至于服务器,她不是容灾的吗,可以通过kill等方式,尝试转移服务器。然后在启动。


推荐参考:
集群瓶颈为什么是磁盘io
http://www.aboutyun.com/forum.php?mod=viewthread&tid=6802



回复

使用道具 举报

liuzhixin137 发表于 2016-10-14 09:29:59
replication肯定是要的,不然就不是单节点容错的了。可以尝试设置为2

我看到了你的第一个图,每个节点能管理的分片数是3   这个是否可以调整。那么相应的,6台机器5个分片是不是有点大

我用solr还没多长时间。生产环境也没有开始使用。只是一点建议。如果有错,还请不要介意。
回复

使用道具 举报

cloudcat 发表于 2016-10-17 12:40:23
liuzhixin137 发表于 2016-10-14 09:29
replication肯定是要的,不然就不是单节点容错的了。可以尝试设置为2

我看到了你的第一个图,每个节点能 ...

您好,谢谢你的建议。我打算每个shard两个replia,明天去试试。如果六台服务器,你们一般几个shard?

回复

使用道具 举报

liuzhixin137 发表于 2016-10-20 11:51:20
cloudcat 发表于 2016-10-17 12:40
您好,谢谢你的建议。我打算每个shard两个replia,明天去试试。如果六台服务器,你们一般几个shard?

我只是对这个组件有过简单的使用,生产上并没有用到。

6台服务,使用几个shard,这个跟 solrcloud的分片原理有关吧,要先找到 合适的分片数。我没有更加深入的了解。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条