YCSB测试
查看workloads中文件
我们打开workloada查看信息
以下是workloada、workloadb、workloadc、workloadd、workloade、workloadf的相关文件信息
workloada | 读写均衡型,50%读,50%写 |
workloadb | 读多写少型,95%读,5%更新。 |
workloadc | 只读,100%读。 |
workloadd | 读最近写入记录型,95%读,5%插入。 |
workloade | 扫描小区间型,95%扫描,5%插入。 |
workloadf | 读写入记录均衡型,50%读,50%读、修改、写。 |
对指定的数据库进行测试
./bin/ycsb load mongodb -s -P workloads/S1 -p mongodb.url=mongodb://root:123@192.168.0.101/ycsb > /home/hduser/load_test.txt
- -s 代表输出status
- -threads 指定线程数
- -P 指定workload
- > 代表stdout 输出到 /home/hduser/load_test.txt文件
使用Mongostat辅助测试
mongostat --host 127.0.0.1:27017 -uroot -p123 --authenticationDatabase ycsb
参数说明:
--host:指定IP地址和端口,也可以只写IP,然后使用--port参数指定端口号
-u: 如果开启了认证,则需要在其后填写用户名
-p: 密码
--authenticationDatabase:若开启了认证,则需要在此参数后填写认证库(注意是认证上述账号的数据库)
输出格式:
下面进行实战
首先配置好文件mongotest_in_only。只插入数据。
#插入100万条文档数据 recordcount=1000000 operationcount=1000000 workload=com.yahoo.ycsb.workloads.CoreWorkload readallfields=true readproportion=0 updateproportion=0 scanproportion=0 #只有插入的操作,1就是100% insertproportion=1 requestdistribution=uniform insertorder=hashed fieldlength=250 fieldcount=8 mongodb.url=mongodb://127.0.0.1:27017/ycsb?w=0 mongodb.writeConcern=acknowledged threadcount=100
打开mongostat
mongostat --host 127.0.0.1:27017 -uroot -p123 --authenticationDatabase ycsb
切换到ycsb目录,运行如下
./bin/ycsb load mongodb -P workloads/mongotest_in_only -s >mongo_20190418.txt
查看刚刚产生的mongo_20190418.txt
也可以在终端查看
cat mongo_20190418.txt
关注几个信息:
RunTime(ms): 数据加载所用时间,单位毫秒(ms)
Throughput(ops/sec): 吞吐量,即ops(每秒操作次数)
Operations: 操作的总次数
AverageLatency(us): 平均响应延时,单位是微秒(us)
MinLatency(us): 最小响应时间,单位是微秒(us)
MaxLatency(us): 最大响应时间,单位是微秒(us)
95thPercentileLatency(us): 95%的操作延时,单位是微秒(us)
99thPercentileLatency(us): 99%的操作延时,单位是微秒(us)
Return=OK: 成功返回数,这个值不符合测试要求,则证明测试失败.
[READ]开头的代表只读的操作记录,其他还有例如上面的[insert],[UPDATE]等,
其他可以理解的就是字面意思,不能理解也不需要太过关注.
和其他测试软件一样,这个只能说是基准值,并不是标准值,和真实环境不能全部模拟,所以测试的思维要结合别的测试软件的方法来做.
测试一下只读操作
配置一下文件mongotest_read_only,只读取文件。
#读取100万条文档数据 recordcount=1000000 operationcount=1000000 workload=com.yahoo.ycsb.workloads.CoreWorkload readallfields=true #只读,1即100 readproportion=1 updateproportion=0 scanproportion=0 insertproportion=0 requestdistribution=uniform insertorder=hashed fieldlength=250 fieldcount=8 mongodb.url=mongodb://127.0.0.1:27017/ycsb?w=0 mongodb.writeConcern=acknowledged threadcount=100
运行mongostat
mongostat --host 127.0.0.1:27017 -uroot -p123 --authenticationDatabase ycsb
切换到ycsb目录,运行如下
./bin/ycsb run mongodb -P workloads/mongotest_read_only -s >mongo_20190419.txt
参考:
ycsb
https://blog.51cto.com/arthur376/2069453
mongostat
你只管努力,其他的交给天意~