ycsb mysql_ycsb / go-ycsb压测工具的简单试用

本文介绍了如何使用Yahoo的ycsb工具和国内pingcap团队的go-ycsb工具对Redis进行压力测试。通过配置工作负载文件进行纯读取场景的压测,展示了ycsb的命令行用法以及go-ycsb的编译和使用方法,同时提供了压测结果的详细性能指标。
摘要由CSDN通过智能技术生成

ycsb是yahoo开源的一个多功能压测软件,支持mysql mongodb redis hbase等多种软件。

本次这里我们以ycsb压测redis为例。

tar xf ycsb-0.15.0.tar.gz -C /usr/local/

cd /usr/local/ycsb-0.15.0

其中,workloads 目录下是各个压测模板文件

# cat workloads/workload_read   这是我写的一个纯读取的场景的压测模板recordcount=1000000     # 总共的操作条数

operationcount=1000000  # 总共操作的次数

workload=com.yahoo.ycsb.workloads.CoreWorkload

readallfields=true  # 在读取的时候,是否需要读取所有字段

readproportion=1  # 读取比例

updateproportion=0   # update比例

scanproportion=0

insertproportion=0

requestdistribution=zipfian

开始压测远程的一个codis-proxy./bin/ycsb load redis -s -P workloads/workload_read -p redis.host=192.168.2.4 -p redis.port=19000 -threads 10    造数据(这步涉及到写操作)

./bin/ycsb run redis -s -P workloads/workload_read -p redis.host=192.168.2.4 -p redis.port=19000  -threads 10    测试纯读取测试

单次测试的结果:

2019-07-26 00:36:12:194 80 sec: 1000000 operations; 9884.21 current ops/sec; [READ: Count=7503, Max=9047, Min=411, Avg=826.87, 90=1048, 99=2931, 99.9=7791, 99.99=8975] [CLEANUP: Count=10, Max=1771, Min=52, Avg=235.2, 90=92, 99=1771, 99.9=1771, 99.99=1771]

[OVERALL], RunTime(ms), 80760

[OVERALL], Throughput(ops/sec), 12382.367508667658

[TOTAL_GCS_PS_Scavenge], Count, 278

[TOTAL_GC_TIME_PS_Scavenge], Time(ms), 309

[TOTAL_GC_TIME_%_PS_Scavenge], Time(%), 0.3826151560178306

[TOTAL_GCS_PS_MarkSweep], Count, 0

[TOTAL_GC_TIME_PS_MarkSweep], Time(ms), 0

[TOTAL_GC_TIME_%_PS_MarkSweep], Time(%), 0.0

[TOTAL_GCs], Count, 278

[TOTAL_GC_TIME], Time(ms), 309

[TOTAL_GC_TIME_%], Time(%), 0.3826151560178306

[READ], Operations, 1000000

[READ], AverageLatency(us), 800.371762

[READ], MinLatency(us), 381

[READ], MaxLatency(us), 65087

[READ], 95thPercentileLatency(us), 1163

[READ], 99thPercentileLatency(us), 2089

[READ], Return=OK, 1000000

[CLEANUP], Operations, 10

[CLEANUP], AverageLatency(us), 235.2

[CLEANUP], MinLatency(us), 52

[CLEANUP], MaxLatency(us), 1771

[CLEANUP], 95thPercentileLatency(us), 1771

[CLEANUP], 99thPercentileLatency(us), 1771

############

此外,国内的pingcap的唐刘大佬也写了一个go-ycsb的软件,功能上与ycsb类似。

yum install golang

mkdir /home/gocode/

echo 'export GOPATH=/home/gocode/' >> /root/.bashrc

source /root/.bashrc

git clone https://github.com/pingcap/go-ycsb.git $GOPATH/src/github.com/pingcap/go-ycsb

cd $GOPATH/src/github.com/pingcap/go-ycsb

make

稍等片刻即可完成编译。

编译完成后,用法和 ycsb基本上一样的,压测redis如下写法:

load:

./bin/go-ycsb load redis -P workloads/workload_dba  -p redis.mode=single -p redis.addr=192.168.2.4:19000

run:./bin/go-ycsb run  redis -P workloads/workload_dba  -p redis.mode=single -p redis.addr=192.168.2.4:19000

可以的,关于 YCSB (Yahoo Cloud Serving Benchmark) 在 MySQL 上的使用,你可以按照以下步骤进行: 1. 首先,下载和安装 YCSB。你可以从 YCSB 的 GitHub 仓库中获取最新的代码:https://github.com/brianfrankcooper/YCSB 2. 确保已经安装了 Java 开发环境(JDK)和 Apache Maven。 3. 在 YCSB 的主目录下,运行以下命令编译 YCSB: ``` mvn clean package ``` 4. 创建一个新的工作负载配置文件,例如 `workload.mysql`,用于定义要执行的操作类型和对数据库的负载。在该文件中,你需要指定要使用的数据库驱动程序、连接字符串、用户名和密码以及执行的操作类型和参数。 5. 在 MySQL 数据库中创建一个用于测试的表。可以使用 YCSB 提供的 `mysql` 工作负载类来创建表。运行以下命令: ``` ./bin/ycsb load mysql -s -P workloads/workload.mysql -p db.url=jdbc:mysql://localhost:3306/ycsb -p db.user=<username> -p db.passwd=<password> ``` 其中 `<username>` 和 `<password>` 是你的 MySQL 数据库的用户名和密码。 6. 运行基准测试以评估数据库性能。运行以下命令: ``` ./bin/ycsb run mysql -s -P workloads/workload.mysql -p db.url=jdbc:mysql://localhost:3306/ycsb -p db.user=<username> -p db.passwd=<password> ``` 替换 `<username>` 和 `<password>` 为你的 MySQL 数据库的用户名和密码。 以上步骤将帮助你在 MySQL使用 YCSB 进行基准测试。你可以通过调整工作负载配置文件和 YCSB 命令行选项来定制测试。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值