mongodb3.0 性能测试报告 三
测试环境:
服务器:X86 pcserver 共6台
cpu: 单颗8核
内存:64G
磁盘: raid 10
操作系统 :centos 6.5
mongodb:3.0
java驱动:2.13.0
jdk:1.6
网络:千兆以太网
测试场景 :
单台monodb服务,一台同配置服务器作为压力服务器,数据量不超过内存大小。
库里背景为1亿条大小为10K的数据。查询会随机按ID进行,插入为每次插入10k的数据。
10线程插入,10线程查询。
测试之前,先进行大量的随机查询,直到内存不增长
以下是mongodb 3.0 测试结果:
插入速度平均每秒9229
查询速度平均每秒2102
以下是mongodb 2.0 测试结果:
插入速度平均每秒169
查询速度平均每秒254
分析:1.受网络限制,对应10k的数据,插入或者查询理论最大速度应该在12500,3.0版的插入效率应该得到的最大体现。2.混合模式下,2.4.4版本表现太差,看来3.0版本的文档级的锁在性能上有很大的提高。
3.对2.4.4的插入和查询单纯测试10线程情况下,插入在9000次/秒左右,查询在800次/秒左右,看下库级的锁对混合模式下 影响还是很大。
4.3.0在单10线程的情况下,查询在1900次/秒,Btree索引提高了一倍的查询性能。
5.同样的数据量,3.0版本比2.4.4版本,内存几乎增加一倍,看来是空间换性能。
对于3.0,插入已经达到网络限制,但查询没有,将查询加大到20线程,即10线程插入,20线程查询。
插入速度平均每秒4622 插入速度非常不稳定
查询速度平均每秒2530
看来大量的查询会影响插入速度,会造成插入非常不稳定。建立副本集,将查询分布到副本上是个好的选择。
最后将进行分片性能测试。