[YCSB] 使用YCSB对数据库性能测试
Contents
Yahoo! Cloud Serving Benchmark (YCSB) 是一个Java语言实现的主要用于云端或者服务器端的数据库性能测试工具。
下载YCSB
下载最新版本的YCSB
|
|
查看帮助文档
|
|
或者进入命令行查看帮助
|
|
workload模板文件
解压后在workloads目录下,有默认的几种测试场景模板文件,
模板说明文档Core Workloads
- workloada: 读写均衡型,50%/50%,Reads/Writes
- worklandb: 读多写少型,95%/5%,Reads/Writes
- worklandc: 只读型,100%,Reads
- worklandd: 读最近写入记录型,95%/5%,Reads/insert
- worklande: 扫描小区间型,95%/5%,scan/insert
workland模板配置参数
编辑workland配置参数,可以设置模拟不同的测试场景, 参数说明文档Core YCSB properties
- recordcount YCSB load阶段加载的记录条数
- operationcount YCSB run阶段执行的操作总数
- readallfields 查询时是否读取记录的所有字段
- readproportion 读操作的百分比
- updateproportion 更新操作的百分比
- scanproportion 插入操作的百分比
命令参数
命令参数格式:
|
|
command选项:
- load:载入测试数据。
- run:执行测试过程。
- shell:交互模式。
database选项:指定测试的数据库场景
options选项:
- -P file :指定workload文件,相对路径或者绝对路径。
- -cp path :指定额外的Java classpath。
- -jvm-args args :指定额外的JVM参数。
- -p key=value :设置ycsb配置项,会覆盖workload文件的配置项。
- -s :运行时的中间状态打印到stderr中。
- -target n :表示1s中总共的操作次数。
- -threads n :设置ycsb client的并发测试线程数,默认是1,单线程。
测试结果
测试结果输出示例:
|
|
输出测试指标:
- 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: 成功返回数,这个值不符合测试要求,则证明测试失败.
- [UPDATE]开头的代表UPDATE的操作记录
使用JDBC
创建数据库表
创建如下数据库和表,数据库默认为ycsb,字段数量默认是10个。
|
|
修改db.properties配置
db.properties文件路径在YCSB_HOME/jdbc-binding/config/
目录下,也可以创建自己的,在执行时指定路径加载。
配置内容如下:
|
|
指定JdbcDBCreateTable
类,加载所需的jar运行
|
|
运行测试
运行所要加载的包在jdbc-binding/lib
目录下
指定workload模板运行
|
|