这是基于实际业务的压力测试,测试机和服务器的配置都很低。
测试机。本人机器,500进程cpu基本100%。
服务器:
8G内存
双核Intel(R) Pentium(R) Dual CPU E2200 @ 2.20GHz
测试时cpu保持在90%左右。
测试请求流向:
测试机jmeter->服务器tomcat->服务器mongodb
mongodb数据大小:
150w条数据
"resident": 1439
"virtual": 3180
"mapped": 1136
也就是使用了1.4g的内存
mongodb的测试命令:
{ "$and" : [ { "$or" : [ { "basic.email" : { "$ne" : null } , "basic.validEmail" : 1}]}]}
这条命令是无法使用索引的。
java客户端使用spring-data-mongodb1.0.0.M5,连接池设置最大200连接:
connections-per-host="200"
threads-allowed-to-block-for-connection-multiplier="100"
测试结果:
线程数
|
200
|
循环次数
|
20
|
总次数
|
4000
|
|
每秒请求数
|
平均响应时间(毫秒)
|
skip(0).limit(25)
|
436
|
374
|
skip(100).limit(25)
|
212
|
840
|
线程数
|
500
|
循环次数
|
20
|
总次数
|
10000
|
|
每秒请求数
|
平均响应时间(毫秒)
|
skip(0).limit(25)
|
427
|
1010
|
skip(100).limit(25)
|
202
|
2190
|
总结:
1.以线程数500为例,平均TPS为427,以这个为高峰请求数,一般请求为427/10=42,也就是每秒42个请求,一天362w的pv。
也就是说,一台性能不怎么样的机器,在不使用索引的恶劣查询中,基本应付400w左右的pv。为了避免单点,2台机器可以应付每天1000w pv的应用。
2.使用skip略过大量文档时,性能会急剧下降。这里测试下降了整整一半。
单纯对mongodb的测试,可参考:
Mongodb亿级数据量的性能测试http://www.cnblogs.com/lovecindywang/archive/2011/03/02/1969324.html
分享到:
相关推荐
MongoDB for Java Developers Design, build, and deliver efficient Java applications using the most advanced NoSQL database
解决连接池不够的问题,多连接的问题。适用于mongoDB项目开发,感兴趣可以下载使用,记得好评哦。欢迎在下方留言
mongodb测试数据,学习增删改查等,或是用于性能测试
java连接mongodb测试,包括增删改查等操作的实用技术
mongodb driver java 源码 2.5.3 版本
MongoDB实现增删改查,java程序驱动,复杂查询,源代码示例
MongoDB Java操作大全 源代码 实例
mongoDB java 驱动 mongoDB java 驱动 mongoDB java 驱动 mongoDB java 驱动
使用java向mongodb中插入数据 一、Linux安装mongodb 二、MongoDB客户端工具(MongoVUE)访问mongodb 三、通过Java操作MongoDB
mongodb安装配置及java操作mongodb 三个word文档和一个Jar包,记录了使用说明
Java 操作Mongodb中存储的文件的实例
MongoDB性能测试,在服务器上进行了5亿数据级别的插入和查询测试,考虑了GridFS和组合索引的性能。
mongodb for java api 英文版
Mongodb常用命令和java调用 比较好噢
mongodb 集群测试代码 3个sharding 3个config srv 1个mongos
MongoDB Java Driver 简单操作
MongoDB问文件存储,包括大文件存储
MongoDB单机测试学生版,完全按照文档可以对MongoDB产生新的全新认识,纸上得来终觉浅,唯有实践出真知。
MongoDBjava各版本驱动下载
本测试用例包括:查询数据库、查询聚类集合、查询数据、添加数据、添加多条数据、删除数据、修改数据操作,更多操作请使用者以此类推。