我正在测试 mongodb,从一个节点开始,然后是 2 个数据节点(1 个主节点、1 个配置服务器和 2 个主节点),然后是 4 个数据节点(1 个主节点、1 个配置服务器、4 个主节点)和 16 个数据节点(与以前的配置相同)有 16 位大师)。我注意到吞吐量与节点数量相同:使用 30 个线程(使用 YCSB)我在 2、4 或 16 个节点的情况下获得了大约 6000 次操作/秒!这是正常的?还是有一些参数需要设置??
感谢您的回复!
我正在测试 mongodb,从一个节点开始,然后是 2 个数据节点(1 个主节点、1 个配置服务器和 2 个主节点),然后是 4 个数据节点(1 个主节点、1 个配置服务器、4 个主节点)和 16 个数据节点(与以前的配置相同)有 16 位大师)。我注意到吞吐量与节点数量相同:使用 30 个线程(使用 YCSB)我在 2、4 或 16 个节点的情况下获得了大约 6000 次操作/秒!这是正常的?还是有一些参数需要设置??
感谢您的回复!
You may have a non balanced shard configuration based on the value of the keys. This shard key isn't likely optimal with YCSB:
shard key: { "_id" : 1 }
You may instead want to try hash sharding like:
shard key: { "_id" : "hashed" }
One way you can tell is to run mongostat on each shard and see if you are getting a nice spread of OPS. If not, then iterate on shard keys until you do. YCSB may need to be altered with this in mind.
我能够在网络上添加更多的 mongos。所以现在我有 4 个 mongod 和 4 个 mongos。我用不同的客户端连接到每个 mongos,但似乎一个 mongos 工作非常努力,第二个工作但不那么努力,另外两个根本不工作(cpu 利用率约为 10%)。我的问题是,mongos 的工作原理是什么?我的意思是,mongos 集群决定了 mongos 必须管理负载/连接?如果我从客户端连接到 mongos,mongos 可能会将请求重定向到另一个 mongos?谢谢!