1、测试环境准备,所用软件有:
JDK1.7
apache-maven-3.1.1
mongodb-2.6.11
准备过程:
点击(此处)折叠或打开
- ##配置JAVA环境
- [root@mas ~]# rpm -ivh jdk-7u79-linux-x64.rpm
- Preparing... ########################################### [100%]
- 1:jdk ########################################### [100%]
- Unpacking JAR files...
- rt.jar...
- jsse.jar...
- charsets.jar...
- tools.jar...
- localedata.jar...
- jfxrt.jar...
- vi /etc/profileexport JAVA_HOME=/usr/java/jdk1.7.0_79 //添加如下三行、使配置生效、测试
- export JAVA_HOME=/usr/java/jdk1.7.0_79
- export PATH=${JAVA_HOME}/bin:${PATH}
- export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
- [root@mas ~]# which java
- /usr/java/jdk1.7.0_79/bin/java
- [root@mas ~]# java -version
- java version "1.7.0_79"
- Java(TM) SE Runtime Environment (build 1.7.0_79-b15)
- Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode)
- ##配置MAVEN
- cd /usr/local/
- tar -zxvf /root/apache-maven-3.1.1-bin.tar.gz
- ln -s /usr/local/apache-maven-3.1.1 /usr/local/maven
- vi /etc/profile.d/maven.sh
- [root@mas local]# cat /etc/profile.d/maven.sh
- export M2_HOME=/usr/local/maven
- export PATH=${M2_HOME}/bin:${PATH}
- [root@mas local]# mvn -version
- Apache Maven 3.1.1 (0728685237757ffbf44136acec0402957f723d9a; 2013-09-17 23:22:22+0800)
- Maven home: /usr/local/maven
- Java version: 1.7.0_79, vendor: Oracle Corporation
- Java home: /usr/java/jdk1.7.0_79/jre
- Default locale: en_US, platform encoding: UTF-8
- OS name: "linux", version: "2.6.18-308.el5", arch: "amd64", family: "unix"
- 解压已编译好的ycsb,ycsb可以去github下载
- cd /server/
- tar -zxvf /root/ycsb-0.4.0.tar.gz
- 解压下载的mongodb数据库软件,并启动mongodb实例
- [root@mas server]# tar -zxvf /root/mongodb-linux-x86_64-2.6.11.tgz
- [root@mas server]# mv mongodb-linux-x86_64-2.6.11 mongodb-2.6.11
- [root@mas server]# ./bin/mongod --dbpath=/server/mongodb-2.6.11/data/ --logpath=/server/mongodb-2.6.11/error.log --logappend &
- [root@mas server]# netstat -ntlp|grep mongod
- tcp 0 0 0.0.0.0:27017 0.0.0.0:* LISTEN 3331/mongod
2、测试mongodb 2.7.11版本
点击(此处)折叠或打开
- ##编辑测试模板
- [root@mas ~]# cd /server/ycsb-0.4.0/
- vi workloads/workloada //可参考YCSB提供的模板自行定义,此次测试模板内容如下
- mongodb.url=mongodb://localhost:27017
- mongodb.database=ycsb
- mongodb.writeConcern=normal
- recordcount=1000000
- operationcount=1000000
- workload=com.yahoo.ycsb.workloads.CoreWorkload
- readallfields=true
- readproportion=0.6 //read操作比例
- updateproportion=0.3 //update比例
- scanproportion=0
- insertproportion=0.1 //insert比例
- requestdistribution=zipfian
- ##
- ##load数据,建议升级Python到2.7版本,貌似argparse模块被添加Python2.7标准库了,先前版本是没有,得手动安装,否则在load数据这一步会报错,提示缺少该模块
- [root@mas ycsb-0.4.0]# ./bin/ycsb load mongodb -s -P workloads/workloada //可以-threads参数开启多线程
- [root@mas ycsb-0.4.0]# ./bin/ycsb run mongodb -s -threads 16 -P workloads/workloada
- ##经过大量时间测试后,最后输出测试结果:整个测试时间,增删改查平均、最小、最大延迟,也可以计算出其他技术指标,例如QPS,TPS
- [OVERALL], RunTime(ms), 2218373.0
- [OVERALL], Throughput(ops/sec), 450.78081999735844
- [CLEANUP], Operations, 16.0
- [CLEANUP], AverageLatency(us), 7701.9375
- [CLEANUP], MinLatency(us), 3.0
- [CLEANUP], MaxLatency(us), 123199.0
- [CLEANUP], 95thPercentileLatency(us), 18.0
- [CLEANUP], 99thPercentileLatency(us), 123199.0
- [INSERT], Operations, 100240.0
- [INSERT], AverageLatency(us), 37795.81236033519
- [INSERT], MinLatency(us), 313.0
- [INSERT], MaxLatency(us), 7954431.0
- [INSERT], 95thPercentileLatency(us), 213503.0
- [INSERT], 99thPercentileLatency(us), 418559.0
- [INSERT], Return=0, 100240
- [READ], Operations, 599577.0
- [READ], AverageLatency(us), 25763.266649654674
- [READ], MinLatency(us), 145.0
- [READ], MaxLatency(us), 7454719.0
- [READ], 95thPercentileLatency(us), 128383.0
- [READ], 99thPercentileLatency(us), 352255.0
- [READ], Return=0, 599577
- [UPDATE], Operations, 300183.0
- [UPDATE], AverageLatency(us), 53808.972996472156
- [UPDATE], MinLatency(us), 218.0
- [UPDATE], MaxLatency(us), 8138751.0
- [UPDATE], 95thPercentileLatency(us), 282111.0
- [UPDATE], 99thPercentileLatency(us), 528383.0
- [UPDATE], Return=0, 300183
点击(此处)折叠或打开
- [root@mas server]# ./mongodb-3.0.7/bin/mongod --logappend --logpath=/server/mongodb-3.0.7/error.log --dbpath=/server/mongodb-3.0.7/data &
- [root@mas server]# ps -ef|grep mongo
root 6681 3733 7 12:42 pts/1 00:00:23 ./mongodb-3.0.7/bin/mongod --logappend --logpath=/server/mongodb-3.0.7/error.log --dbpath=/server/mongodb-3.0.7/data
root 6715 3772 0 12:46 pts/3 00:00:00 python ./bin/ycsb load mongodb -s -threads 16 -P workloads/workloada
root 6716 6715 83 12:46 pts/3 00:00:25 /usr/java/jdk1.7.0_79/bin/java -cp /server/ycsb-0.4.0/mongodb-binding/conf:/server/ycsb-0.4.0/conf:/server/ycsb-0.4.0/lib/jackson-core-asl-1.9.4.jar:/server/ycsb-0.4.0/lib/jackson-mapper-asl-1.9.4.jar:/server/ycsb-0.4.0/lib/HdrHistogram-2.1.4.jar:/server/ycsb-0.4.0/lib/core-0.4.0.jar:/server/ycsb-0.4.0/mongodb-binding/lib/logback-classic-1.1.2.jar:/server/ycsb-0.4.0/mongodb-binding/lib/mongodb-async-driver-2.0.1.jar:/server/ycsb-0.4.0/mongodb-binding/lib/mongodb-binding-0.4.0.jar:/server/ycsb-0.4.0/mongodb-binding/lib/mongo-java-driver-3.0.3.jar:/server/ycsb-0.4.0/mongodb-binding/lib/logback-core-1.1.2.jar:/server/ycsb-0.4.0/mongodb-binding/lib/slf4j-api-1.6.4.jar com.yahoo.ycsb.Client -db com.yahoo.ycsb.db.MongoDbClient -s -threads 16 -P workloads/workloada -load
root 6768 3733 0 12:47 pts/1 00:00:00 grep mongo - [root@mas ycsb-0.4.0]# ./bin/ycsb run mongodb -s -threads 16 -P workloads/workloada
- 测试结果如下:
- [OVERALL], RunTime(ms), 2487847.0
- [OVERALL], Throughput(ops/sec), 401.95397868116487
- [CLEANUP], Operations, 16.0
- [CLEANUP], AverageLatency(us), 43344.75
- [CLEANUP], MinLatency(us), 2.0
- [CLEANUP], MaxLatency(us), 626687.0
- [CLEANUP], 95thPercentileLatency(us), 67071.0
- [CLEANUP], 99thPercentileLatency(us), 626687.0
- [INSERT], Operations, 100249.0
- [INSERT], AverageLatency(us), 30794.44838352502
- [INSERT], MinLatency(us), 316.0
- [INSERT], MaxLatency(us), 2162687.0
- [INSERT], 95thPercentileLatency(us), 148479.0
- [INSERT], 99thPercentileLatency(us), 348927.0
- [INSERT], Return=0, 100249
- [READ], Operations, 599559.0
- [READ], AverageLatency(us), 35769.579687737154
- [READ], MinLatency(us), 161.0
- [READ], MaxLatency(us), 2160639.0
- [READ], 95thPercentileLatency(us), 196735.0
- [READ], 99thPercentileLatency(us), 421119.0
- [READ], Return=0, 599559
- [UPDATE], Operations, 300192.0
- [UPDATE], AverageLatency(us), 50238.05311600576
- [UPDATE], MinLatency(us), 227.0
- [UPDATE], MaxLatency(us), 2162687.0
- [UPDATE], 95thPercentileLatency(us), 270335.0
- [UPDATE], 99thPercentileLatency(us), 518655.0
- [UPDATE], Return=0, 300192
参考自:https://github.com/brianfrankcooper/YCSB/tree/master/mongodb