日期:2014-05-16  浏览次数:20448 次

MongoDB、HandlerSocket和MySQL性能测试及其结果分析

一、测试环境
1、测试服务器状况
共涉及4台测试服务器:

压力测试服务器
Web服务器
MongoDB服务器

MySQL服务器。

?

机器配置为:
CPU:Intel(R) Core(TM)2 Duo CPU???? E7200? @ 2.53GHz
RAM:8G DDR2 667
磁盘:SATA

操作系统:Redhat 5.5

?

1.?压力测试服务器
安装Webbench 1.5,通过Webbench来压Web服务器。

?

2.?Web服务器
Nginx 0.8.54 + PHP 5.3.3 (php-fpm),安装有Mongodb和HandlerSocket的php驱动。
Mongodb的php驱动为:mongodb-mongo-php-driver-1.1.1-19-gc584231.tar.gz
HandlerSocket的php驱动为:php-handlersocket-0.0.7.tar.gz
通过Php程序来调用Mongodb和HandlerSocket。

?

3.?MongoDB服务器
MongoDB版本:1.6.5

?

4.?MySQL服务器
MySQL版本:5.1.53
HandlerSocket版本:1.0.6-60-gf51e061
MySQL存储引擎:Innodb,调整了innodb的Thread Pool Size为2G


2、测试程序和测试数据提取
1. 为了避免打开连接和Http服务器成为瓶颈,在测试程序里设置为每1000个请求公用同一个连接,同时设置为每个页面请求执行1000次数据请求。
2.?测试的数据,包括QPS、CPU、IO等方面的数据,从操作系统提供的命令(如vmstat、iostat等)或者Mongodb、Mysql提供的命令(如mongostat、mysqladmin等)来获取。


二、测试结果
1、100万条记录
1. 查询

?

?

2. 插入