阅读884 返回首页    go 阿里云 go 技术社区[云栖]


Mongodb内存数据库

Mongodb的商业版本已经支持内存数据库,但是没有开源,从其官网说明来看,其实也是通过WiredTiger存储引擎实现的.我对mongodb代码做了一些修改,基于官方(r3.2.16)分支,使其成为内存数据库,配置文件上和官网的类似.关于mongodb支持内存数据库的说明见: https://docs.mongodb.com/manual/core/inmemory/

代码github地址: https://github.com/yanglimingchn/mongo

如下是我做的一点压力测试结果:
硬件配置:
cpu: Intel(R) Xeon(R) CPU E5-2620 0 @ 2.00GHz 24核心
mem: 125g
测试数据:
测试使用的是ycsb工具,配置文件如下

# Yahoo! Cloud System Benchmark
# Workload A: Update heavy workload
#   Application example: Session store recording recent actions
#                        
#   Read/update ratio: 50/50
#   Default data size: 1 KB records (10 fields, 100 bytes each, plus key)
#   Request distribution: zipfian

recordcount=15728640
operationcount=1000000
workload=com.yahoo.ycsb.workloads.CoreWorkload

readallfields=true

readproportion=1
updateproportion=0
scanproportion=0
insertproportion=0

requestdistribution=zipfian

测试对比了mongodb内存数据库和redis
并发连接数 | mongodb Throughput(ops/sec) | redis Throughput(ops/sec)
------- | ------- | -------
100 | 36818.85125184094 | 35942.779095679674
200 | 36255.528968167644 | 36824.274561791135
300 | 35865.432895775055 | 36490.969406561
400 | 35217.46786406057 | 35547.97198819807
500 | 34995.62554680665 | 33195.02074688797

mongodb与redis的配置文件见附件,测试的时候都只是单实例,没有从节点.

最后更新:2017-10-24 12:03:50

  上一篇:go  【避坑】初次接项目的血与泪,扎坑了老铁(二)
  下一篇:go  程序员,是时候让大家听听你的声音了!