2019独角兽企业重金招聘Python工程师标准>>>
mongodb支持自动分片的功能,并且可以让数据尽可能地均匀分布在各个节点上,本身支持横向扩展。
1,环境搭建
此次性能测试对象为mongodb的replicaset自动分片功能,集群拓扑如下图所示:
有2台物理机作为mongodb的replicaset,每台机器上起了三个mongod进程,另外有三个mongo configserver分布在另外三台物理机上,mongos为连接整个集群的入口点。物理机配置为8核,16G内存。
在测试过程中关闭mongodb的balancer功能,也就是把一个分片的数据迁往另一个分片上,以保持各个分片数据相对均匀。(balancer的运行时间为凌晨1点至6点)
测试数据名:OupengTest,集合:testcollections,shard key:{ "_id" : "hashed" }
2,测试环境
在两台测试物理机上安装mongos,每台物理机上起10个测试进程,每个进程的worker为800
3,测试结果
3.1 写性能测试结果如下:
1)每条插入数据的大小为55bytes,写的峰值在9k/second左右,所能支持的最大连接数在2k左右,下图中可以看出整个集群平均的写入速度为7k/second左右。
2)每条插入数据的大小为1KB,写的峰值在6k/second左右,连接数很低,波动比较大,具体原因还在排查。
3.2 读性能测试结果
从下图可以看出,读的峰值在22k左右,连接数最多可以达到2k左右。