zoukankan      html  css  js  c++  java
  • Mongodb 性能测试

    • 测试硬件环境 MacPro

      • 处理器名称: Intel Core i7
      • 处理器速度: 2.5 GHz
      • 处理器数目: 1
      • 核总数: 4
      • L2 缓存(每个核): 256 KB
      • L3 缓存: 6 MB
      • 内存: 16 GB
    • 测试软件环境

      • MongoDB v3.2.4
      • 300W存量数据

    1.1 单条插入性能测试

    插入数据大小30字节

    插入条数(单位:万)耗时(单位:毫秒)
    1 999
    2 2176
    5 5140
    10 10198

    结论:在当前测试环境下每秒写入速度为1万

    1.2 单条读取性能测试

    测试语句

    db.follower.find({'user_id':1000069, 'follower_id': 1000089}).Limit(1)
    
    读取条数(单位:万)耗时(单位:毫秒)
    1 1227
    2 2383
    5 6024
    10 12196

    结论: 每秒读取速度 8000

    1.3 分页读取性能测试——采用Skip实现

    测试语句

    mg.C("follower").Find(condition).Sort("-_id").Skip(10000).Limit(10).All()
    

    按照每页10条计算

    功能场景耗时(单位:毫秒)
    读取10000条之后的 10条数据 15
    读取50000条之后的 10条数据 70
    读取100000条之后的 10条数据 140

    结论:
    随着查询偏移量的上升(1w, 5w, 10w),查询耗时出现线性增长。尽量避免使用 Skip 做为分页策略

    1.4 批量写入性能测试

    插入数据大小30字节

    一次插入条数耗时(单位:毫秒)速度 (单位: 毫秒/条)
    5000 80 0.016
    2000 32 0.016
    1000 18 0.018
    100 2.15 0.0215

    结论:批次插入越多,单位时间越少



    作者:baboon
    链接:https://www.jianshu.com/p/c1ba8c45e6bf
    来源:简书
    简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
  • 相关阅读:
    Django中使用Celery实现异步任务队列
    使用Pyenv + pipenv来管理python版本和虚拟环境
    Django设置DEBUG=False后静态文件无法加载
    翕的来历
    Dubbo:基本原理机制
    数据库事务特性及隔离机制再到spring事务管理
    通过rocketmq思考一下mq的设计取舍
    redis的一些特性
    redis的快速机制与数据类型
    Zookeeper选举算法原理
  • 原文地址:https://www.cnblogs.com/ExMan/p/10951567.html
Copyright © 2011-2022 走看看