我正在测试mongodb从一个节点开始,然后是2个数据节点(1个主节点,1个配置服务器和2个主节点),然后是4个数据节点(1个主节点,1个配置服务器,4个主节点)和16个数据节点(相同)像以前一样配置16个主人)。我注意到吞吐量与节点数量无关:使用30个线程(使用YCSB)我获得了大约6000个操作/秒,有2个,4个或16个节点! 这是正常的?或者有一些参数设置??
感谢您的回复!
答案 0 :(得分:0)
您可能会根据键的值进行非平衡分片配置。使用YCSB时,此分片键不太可能是最佳的:
shard key: { "_id" : 1 }
您可能希望尝试使用哈希分片,如:
shard key: { "_id" : "hashed" }
你可以说的一种方法是在每个碎片上运行mongostat,看看你是否得到了很好的OPS传播。如果没有,那么迭代分片键直到你这样做。考虑到这一点,YCSB可能需要改变。
答案 1 :(得分:0)
我能够在网络上添加更多mongos。所以现在我有4个mongod和4个mongos。我用不同的客户端连接到每个mongos,但似乎一个mongos工作非常努力,第二个工作但不是那么难,另外两个根本不起作用(cpu利用率大约是10%)。我的问题是,mongos如何工作?我的意思是,mongos集群决定mongos必须管理负载/连接?如果我从客户端连接到mongos,可能会发生mongos将请求重定向到另一个mongos?谢谢!