2017-06-01 33 views
0

我们采用分布式索引:我们可以在Sphinx中为分布式索引使用多少个代理?

index ind_mm { 
    type = distributed 
    agent = 192.168.0.11:9318:ind_1 
    agent = 192.168.0.11:9319:ind_2 
    agent = 192.168.0.22:9317:ind_3 
    agent = 192.168.0.22:9317:ind_4 
} 

是对代理商数量是否有限制?当架空井太高时?如果我们将使用大约100个agnets,性能会不会好? 1000只安格斯?

回答

2

那么有可能没有多少CPU拥有更多的代理在机器上。

如果有更多的代理,他们几乎保证在核心上排队。即查询不会实际并行运行。 (由于进程切换,他们可能会这么做)

无法保证事件数量与内核数量相等,意味着每个内核有一个部件(直到操作系统向内核分配进程) - 但从理论上讲,可能。

运行分布式索引的实例将使用一个核心,因此在理想情况下,核心数量比核心少一个。

+0

如果我们的代理将位于不同的服务器上('agent = 192.168.0.11:9318:ind_1'等),该怎么办? – mnv

+0

那么每台服务器也是如此,不想让更多的代理在一台服务器上运行而不是运行核心。 – barryhunter

+1

但是在这种情况下,我想你的问题是更一般的'多少碎片应该用于最佳性能'?在这种情况下,确实没有普遍的答案。我们可能会通过实验来为您的数据找到“汗点”。如果额外的平行性比转移所有(越来越小的)结果和梳理它们的开销要好 – barryhunter

相关问题