最近云上用户用户遇到一个 sharding 集群性能问题的疑惑,比较有代表性,简单分享一下
测试配置
- mongos x 2、shard x 3
- 测试1:集合不开启分片,批量 insert 导入数据,每个 batch 100 个文档
- 测试2:集合开启分片,随机生成 shardKey,chunk 已提前 split 好,能确保写入均分到3个shard
测试结果
- 测试1:单个 shard cpu 跑满,insert qps 在 6w 左右
- 测试2:3个 shard cpu 跑满,insert qps 在 7w 左右(平均每个分片2.4w左右)
注:两个测试里,mongos 都不是瓶颈,能力足够
从测试结果看,每个shard都承担 1/3 的负载,的确达到横向扩张的目的,但为啥分片之后,单个shard的能力就下降了呢?如果是这样,sharding的扩展能力