使用YCSB测试MYSQL数据库操作指南

测试前提:

1、下载YCSB:https://github.com/brianfrankcooper/YCSB/releases/download/0.17.0/ycsb-0.17.0.tar.gz

2、解压YCSB(本文章解压在/opt目录下):

tar -xvf ycsb-0.17.0.tar.gz

操作指南:

1、安装MYSQL数据库

本文章使用的版本号:5.7.40

2、创建库和

在数据库上创建ycsb库和usertable表:

create database ycsb;

use ycsb;

CREATE TABLE usertable (
	YCSB_KEY VARCHAR(255) PRIMARY KEY,
	FIELD0 TEXT, FIELD1 TEXT,
	FIELD2 TEXT, FIELD3 TEXT,
	FIELD4 TEXT, FIELD5 TEXT,
	FIELD6 TEXT, FIELD7 TEXT,
	FIELD8 TEXT, FIELD9 TEXT
);

附上YCSB原文链接:https://github.com/brianfrankcooper/YCSB/tree/master/jdbc

3、修改db.properties配置文件

修改ycsb-0.17.0/jdbc-binding/conf/db.properties,用于YCSB连接本地的MYSQL数据库。

db.driver=com.mysql.cj.jdbc.Driver
db.url=jdbc:mysql://127.0.0.1:3306/ycsb
db.user=root
db.passwd=123456

其中ycsb是数据库名,根据自己的实际情况修改。

下面提供两种其他数据库的配置:

postgresql配置:

db.driver=org.postgresql.Driver
db.url=jdbc:postgresql://host1:port1/ycsb
db.user=admin
db.passwd=admin

Oracle配置:

db.driver=oracle.jdbc.OracleDriver
db.url=jdbc:oracle:thin:127.0.0.1:1521:u01     # u01是server_name,取自tnsname.ora文件
db.user=system
db.passwd=123456

4、修改workload文件

cd /opt/ycsb-0.17.0/workloads

使用YCSB测试MYSQL数据库操作指南_第1张图片

5、添加驱动

将MYSQL数据库的JDBC driver放到jdbc-binding/lib目录下。jdbc的驱动用于连接MYSQL数据库。或者只需在YCSB命令中使用-cp指定驱动程序jar的路径。

cd /opt/ycsb-0.17.0/jdbc-binding/lib

使用YCSB测试MYSQL数据库操作指南_第2张图片

6、 加载数据

配置环境变量,否则加载命令执行失败:

vi /etc/profile
添加如下配置参数后wq保存文件:
export YCSB_HOME=/opt/ycsb-0.17.0
export PATH=$YCSB_HOME/bin:$PATH

生效环境变量:
source /etc/profile

验证环境变量是否生效,结果有/opt/ycsb-0.17.0/bin 说明成功:
echo $PATH 

运行前先加载数据库:

bin/ycsb load jdbc -P /opt/ycsb-0.17.0/workloads/workloada -P /opt/ycsb-0.17.0/jdbc-binding/conf/db.properties -cp mysql-connector-java-8.0.17.jar -threads 100

返回字段Return=OK,则表示数据导入成功。

7、执行测试

bin/ycsb run jdbc -P /opt/ycsb-0.17.0/workloads/workloada -P /opt/ycsb-0.17.0/jdbc-binding/conf/db.properties -cp mysql-connector-java-8.0.17.jar -threads 100

返回字段Return=OK,则表示测试完成,取“[OVERALL],Throughput”值作为测试指标。

YCSB命令说明:

ycsb [command] [database] [options]

  • command选项:
    load:载入测试数据。
    run:执行测试过程。
    shell:交互模式。
  • database选项:指定测试的数据库场景,例如mongodb, cassandra, memcached等。
  • 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,单线程。

8、测试结果分析

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]等。

相关文章链接:

YCSB工具测试结果分析_yyxiangd的博客-CSDN博客

你可能感兴趣的:(YCSB测试工具,数据库,mysql,测试工具)