`
大唐9527
  • 浏览: 19626 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

MongoDB的简单QPS测试(单机)

 
阅读更多

mongoDB官方网站下载:

1、mongodb-linux-i686-2.2.1.tgz

2、java驱动 mongo-2.2.jar

 

测试服务器为Dell  E5410 的Debian linux 2.6,配置为:

1、4核,2.33GHz

2、内存3G

3、SATA硬盘2T

 

web服务器:tomcat5.5

打压工具:Apache Bench

监控工具:mongostat

 

测试思路:

1、因为MongoDB内置了连接池,所以客户端程序相对简单,只需从一个Mongo的单例获取连接即可;

2、每个请求做1000次插入;

 

测试代码MongoDBManager:

public class MongoDBManager {
	static private MongoDBManager instance; // 唯一实例
	//	public static final String DB_NAME = "lab";
	//  public static final String MESSAGE_COLLECTION = "email";   

	static synchronized public  MongoDBManager getInstance(final String ip, int port, int poolSize) throws UnknownHostException {
		if (instance == null) {
			instance = new MongoDBManager(ip,port,poolSize);
		}		
		return instance;
	}

	private MongoDBManager() {
	}
	
	private MongoDBManager(final String ip, int port, int poolSize) throws UnknownHostException {
		init(ip,port,poolSize);
	}

	public DB getDB(String dbname) {
		return mongo.getDB(dbname);
	}

	private Mongo mongo;

	public void init(final String ip, int port, int poolSize)
			throws java.net.UnknownHostException {
		System.setProperty("MONGO.POOLSIZE", String.valueOf(poolSize));
		if (mongo == null) {
			MongoOptions options = new MongoOptions();
			options.autoConnectRetry = true;
			options.connectionsPerHost = poolSize;

			ServerAddress serverAddress = new ServerAddress(ip, port);
			mongo = new Mongo(serverAddress, options);
		}
	}
}

 

 测试代码InsertMongodbServlet:

public class InsertMongodbServlet extends HttpServlet {
	public void doGet(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		Integer insertNum = Integer.valueOf(req.getParameter("insertNum")
				.toString());
		resp.setContentType("text/html;charset=UTF-8");
		resp.setHeader("Cache-Control", "no-cache");

		DB db = MongoDBManager.getInstance("127.0.0.1", 27017, 500)
				.getDB("lab");

		DBCollection tests = db.getCollection("tests");
		for (int i = 0; i < insertNum; i++) {
			DBObject test = new BasicDBObject();
			test.put("id", 10000);
			test.put("name", "This is for mongodb insert.");			
			tests.insert(test);
		}

		resp.getWriter().write(" Insert mongodb successed!");
	}

	public void doPost(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
	}
}

 

开始压力测试,开1000个线程,共插入100万条记录: 

/usr/sbin/ab -n 1000 -c 400  http://192.168.175.130:8080/labWeb/insertMongodb.do?insertNum=1000

 

监控:bin/mongostat

 

可以看到在400个并发情况下,插入100万记录,QPS在28000左右。

分享到:
评论

相关推荐

    mongodb-测试数据

    这个“mongodb-测试数据”压缩包显然包含了一些用于测试MongoDB功能的样例数据集,特别是针对增、删、改、查(CRUD)操作的学习和性能测试。 在深入探讨MongoDB的测试数据之前,我们先来了解一下MongoDB的基本概念...

    MongoDB单机测试学生版

    本文档提供了如何在单机环境下安装和测试MongoDB的流程,尤其适合学生进行学习和实践。 首先,在安装MongoDB之前,需要准备RHEL(Red Hat Enterprise Linux)7.5操作系统。操作系统安装完毕后,接下来的步骤是文件...

    java连接mongodb测试

    "Java连接MongoDB测试" Java连接MongoDB测试是指使用Java语言连接MongoDB数据库,实现增删改查等操作的技术。下面将对Java连接MongoDB测试进行详细的介绍。 准备工作 1. 下载MongoDB对Java支持的驱动包:可以从...

    MongoDB查询性能优化验证及验证

    结论: 1、 200w数据,合理使用索引的情况下,单个stationId下4w数据。mongodb查询和排序的性能理想,无正则时client可以在600ms+完成查询,qps...测试环境:mongodb使用 replica set,1主2从,96G内存,版本2.6.5 Me

    MongoDB简介(软件测试)

    MongoDB简介 软件测试

    MongoDB集群测试代码

    在这个“MongoDB集群测试代码”中,我们关注的是MongoDB的两个关键特性:副本集(Replica Set)和分片(Sharding),以及如何通过配置文件和脚本来进行集群的设置与测试。 1. **副本集(Replica Set)**: - 副本...

    MongoDB测试二题目及答案.doc

    "MongoDB测试二题目及答案" MongoDB是一个非关系数据库管理系统,主要应用于大数据和实时web应用程序。下面是MongoDB测试二题目及答案的知识点总结: 1. 创建数据库和集合:在MongoDB中,创建数据库和集合是通过db...

    linux下安装配置MongoDB.mp4 (软件测试)

    linux下安装配置MongoDB (软件测试)

    Mongodb亿级数据量的性能测试

    “Mongodb亿级数据量的性能测试” Mongodb亿级数据量的性能测试是指对Mongodb数据库进行大规模数据量的测试,以评估其性能和可扩展性。本文将对Mongodb亿级数据量的性能测试进行详细的分析和讨论。 普通插入性能 ...

    千万级Mysql-MongoDB性能对比报告

    本次性能对比测试主要关注不同规模的数据插入操作在MySQL和MongoDB中的表现情况,特别是在处理千万级别数据时的表现。测试涵盖了不同的数据提交方式和数据量,旨在全面评估两种数据库系统的性能差异。 #### MySQL...

    mongodb3.4测试过后可以安装

    自己在本地win下安装window,在官网上好不容易下载了最新版本的,可是在安装最后一步的时候老是卡住,3.4版本的就可以正常安装。

    MongoDB在单机上搭建分片副本集群

    mongodb在单机上搭建分片副本集群. 1.安装mongodb。2.准备好配置文件夹。3.创建日志文件。4.启动配置进程(config servers)。5.启动路由进程(mongos)。6.启动分片进程(shard servers)。7.开始设置分片副本集。8.设置...

    mongodb数据库idea测试.zip

    mongodb 数据库基本操作 1、mongoDB的介绍 mongoDB是一个基于分布式文件存储的数据库,由 C++ 语言编写,旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。它介于关系数据库和非关系数据库之间,被认为是非...

    java连接mongodb的jar包

    Java连接MongoDB主要依赖于MongoDB的Java驱动程序,这是一个允许Java应用程序与MongoDB数据库进行交互的库。在本文中,我们将深入探讨如何使用Java连接MongoDB,涉及的知识点包括MongoDB Java驱动程序的安装、配置,...

    MongoDB性能测试报告

    ### MongoDB性能测试报告知识点 #### 一、测试点概述 本次MongoDB性能测试涉及多个关键领域,旨在全面评估MongoDB在不同场景下的表现。主要测试点包括: 1. **磁盘占用情况**:评估不同数据量下MongoDB的磁盘使用...

    MongoDB测试.zip

    综上所述,"MongoDB 性能 测试.pdf"这份文档很可能详细介绍了如何进行全面的MongoDB性能评估,包括测试工具的使用、性能指标的解读、优化策略的实施等方面,对于MongoDB的管理员和开发者来说是一份宝贵的参考资料。...

    mongoDB测试demo

    JAVA代码编写用于测试mongoDB数据库的简单程序,该程序实现对mongoDB数据库的增删改查功能,适用于初学mongoDB的童鞋学习使用,java程序连接mongoDB数据库所用到的jar包已在程序中包含,不需要另外下载,程序简单...

    MongoDB TPCC事务性能基准测试.pdf

    在“MongoDB TPCC事务性能基准测试”中,我们关注的是如何评估MongoDB在处理事务处理能力上的表现,特别是针对TPCC(Transaction Processing Performance Council C)基准测试。TPCC是一个广泛采用的在线事务处理...

    Mongodb的并发访问性能测试的java客户端

    在这个场景中,我们关注的是一个Java客户端,它被设计用于并发访问MongoDB数据库并进行性能测试。这个客户端涵盖了三个主要操作:查询、修改和插入,这些都是数据库操作中的基本且重要的功能。 首先,让我们深入...

    mongo_bench:MongoDB 的基准测试工具

    mongo_bench MongoDB 的基准测试工具。 该工具执行读写测试(使用 insert() 和 find())。 测试数据由工具根据定义的“str_cnt”的数量生成,即根据定义的“str_cnt”创建 1 ... n 个 UUID 字符串元素。 该工具将...

Global site tag (gtag.js) - Google Analytics