ycsb压测工具操作文档

Posted c-moon

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ycsb压测工具操作文档相关的知识,希望对你有一定的参考价值。

ycsb压测工具操作文档

ycsb介绍

ycsb全称Yahoo! Cloud Serving Benchmark,是是雅虎开发的用来对云服务进行基础测试的工具
其内部涵盖了常见的NoSQL数据库产品,如MongoDB、HBase、Redis等等

准备环境

参考文档:https://github.com/brianfrankcooper/YCSB/tree/master/mongodb

安装openjdk

# 1、新建可以包目录缓存
yum makecache

# 2、查询可用的包
yum list java-1.8*

# 3、安装openjdk
yum install -y java-1.8.0-openjdk.x86_64

# 4、检验是否安装完成
java -version

获取ycsb

wget https://github.com/brianfrankcooper/YCSB/releases/download/0.17.0/ycsb-0.17.0.tar.gz

ycsb使用说明

ycsb命令格式如下
ycsb command database [options]

  • command:load用于压测前的数据准备;run执行压测
  • database:压测数据库名称
  • options:-P指定workload文件;-p key=value覆盖workload中的参数;-threads进程数;-s执行过程中是否打印状态信息

目录结构

bin 目录下为用户所需使用的可执行文件
workloads 目录下为预置的一些测试方案模板

workload中的参数说明

参数 说明
recordcount load阶段加载到数据库的纪录条数;run阶段操作的数据范围
operationcount run阶段执行的操作总数
readallfields 查询时是否读取所有字段
fieldcount 每条记录的字段个数 (default: 10)
fieldlength 每个字段的数据长度 (default: 100)
readproportion 读操作比例 (default: 0.95)
updateproportion 更新操作比例 (default: 0.05)
insertproportion 插入操作比例 (default: 0)
insertstart 第一个插入值的偏移量(default: 0)
scanproportion 扫描作业比例 (default: 0)
readmodifywriteproportion 读取一条记录修改它并写回的比例 (default: 0)
requestdistribution 请求的分布规则 uniform/zipfian/latest (default: uniform)
mongodb.url 待测试mongo实例的连接地址
mongodb.database 测试时使用的数据库名称(default: ycsb)
table 测试表的名称 (default: usertable)

使用示例

加载压测数据

ycsb load mongodb -s -P ./workloads/workload -threads 100

执行压测

ycsb run mongodb -s -P ./workloads/workloada -threads 100

返回结果详解

# 数据加载所用时间,单位毫秒(ms)
[OVERALL], RunTime(ms), 938015
# 吞吐量,即ops(每秒操作次数)
[OVERALL], Throughput(ops/sec), 1066.0810328193045
[TOTAL_GCS_PS_Scavenge], Count, 1323
[TOTAL_GC_TIME_PS_Scavenge], Time(ms), 2368
[TOTAL_GC_TIME_%_PS_Scavenge], Time(%), 0.2524479885716113
[TOTAL_GCS_PS_MarkSweep], Count, 1
[TOTAL_GC_TIME_PS_MarkSweep], Time(ms), 32
[TOTAL_GC_TIME_%_PS_MarkSweep], Time(%), 0.0034114593050217747
[TOTAL_GCs], Count, 1324
[TOTAL_GC_TIME], Time(ms), 2400
[TOTAL_GC_TIME_%], Time(%), 0.2558594478766331
# 操作的总次数
[CLEANUP], Operations, 100
# 平均响应延时,单位是微秒(us)
[CLEANUP], AverageLatency(us), 174.62
# 最小响应时间,单位是微秒(us)
[CLEANUP], MinLatency(us), 1
# 最大响应时间,单位是微秒(us)
[CLEANUP], MaxLatency(us), 17311
# 95%的操作延时,单位是微秒(us)
[CLEANUP], 95thPercentileLatency(us), 2
# 99%的操作延时,单位是微秒(us)
[CLEANUP], 99thPercentileLatency(us), 34
[INSERT], Operations, 1000000
[INSERT], AverageLatency(us), 92408.98899
[INSERT], MinLatency(us), 7456
[INSERT], MaxLatency(us), 27885567
[INSERT], 95thPercentileLatency(us), 303615
[INSERT], 99thPercentileLatency(us), 578559
# 成功返回数,这个值不符合测试要求,则证明测试失败
[INSERT], Return=OK, 1000000

以上是关于ycsb压测工具操作文档的主要内容,如果未能解决你的问题,请参考以下文章

ycsb压测mongodb

ycsb压测mongodb

ycsb压测mongodb

YCSB测试HBase远程完全分布式集群

YCSB压力测试工具安装

YCSB的使用测试MySQL协议类数据库