利用YCSB工具对mongodb进行压测
2016年05月26日 19:45:59
阅读数:5203
1. 安装Java
去oracle官网下载jdk-7u15-linux-x64.rpm (直接yum安装的jdk版本貌似有问题)
rpm –ivh jdk-7u15-linux-x64.rpm
2. 安装 Maven
wgethttp://ftp.heanet.ie/mirrors/www.apache.org/dist/maven/maven-3/3.1.1/binaries/apache-maven-3.1.1-bin.tar.gz
sudo tar xzfapache-maven-*-bin.tar.gz -C /usr/local
cd /usr/local
sudo ln -s apache-maven-* maven
sudo vi /etc/profile.d/maven.sh
添加以下两行到maven.sh
export M2_HOME=/usr/local/maven
export PATH=${M2_HOME}/bin:${PATH}
reload,测试maven安装成功
bash
mvn -version
3. 安装YCSB
源码下载地址
https://github.com/brianfrankcooper/YCSB.git
如果要安装所有则
mvn clean package
如果只需要安装mongodb
mvn -pl com.yahoo.ycsb:mongodb-binding -am clean package
4. 运行 YCSB
查看ycsb的运行参数说明
加载数据的模板详细参数说明
下面我们编辑一种情况来说明
场景说明:记录数为2000000,操作次数10000000,读写场景为纯读,每个记录为2k(250bytes*8列),并发数量为100,write concern为acknowledged
第一步是启动mongod,并建立测试库为ycsbtest,添加账户和密码均为ycsbtest
第二步是编辑wrokload
Vim workloads/S1
recordcount=2000000
operationcount=10000000
workload=com.yahoo.ycsb.workloads.CoreWorkload
readproportion=1
updateproportion=0
insertproportion=0
fieldlength=250
fieldcount=8
mongodb.writeConcern=acknowledged
threadcount=100
第三步是load数据
./bin/ycsbload mongodb -s -P workloads/S1 -pmongodb.url=mongodb://ycsbtest:ycsbtest@10.9.79.68/ycsbtest>load_test.txt
查看load的结果
第四步是run进行压测
在配置文件里添加上maxexecutiontime=180表示压测180s
./bin/ycsbrun mongodb -s -P workloads/S1 -p mongodb.url=mongodb://ycsbtest:ycsbtest@10.9.79.68/ycsbtest>run_test.txt
压测时最好结合mongostat和iostat一起观察,验证mongostat和ycsb的结果基本保持一致,也好定位性能差的原因
查看run的结果
个人分类: NoSQL/MongoDB