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
本文作者:大胡萝卜没有须
本文链接:https://www.cnblogs.com/c-moon/p/17227724.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步