ycsb使用

    技术2022-07-10  142

    1.是什么 YCSB(Yahoo! Cloud Serving Benchmark),是雅虎开源的一款通用的性能测试框架。

    2.可以做什么 可以测试数据库,或者支持数据库操作的产品性能。 内嵌了一些数据库产品和测试,并支持自定义数据库的测试,测试结果是吞吐量和延迟,可以了解数据库性能。

    3.ycsb执行的原理 ycsb的目录: bin目录: 目录下有个可执行的ycsb文件,是个python脚本,是用户操作的命令行接口。ycsb主逻辑是:解析命令行、设置java环境,加载java-libs,封装成可以执行的java命令,并执行编译好的jar包; workloads: 工作负载

    4.ycsb的使用 以支持自定义数据库为例说明。 (1)前提: fs_rw_sdk:一个java sdk,业务通过sdk操作fs。 (2)准备: 使用ycsb,需要实现ycsb的com.yahoo.ycsb.DB的insert和read接口,模拟数据库的读写操作。 具体接口说明:init/insert/read/接口说明 (3)把依赖的sdk配置到pom里,mvn package编译生成可以执行的jar包 (4)通过脚本拼接成命令,执行(3)编译生成的jar包 脚本作用和ycsb目录下的ycsb.sh的相同

    #!/bin/sh if [ $# -lt 1 ]; then echo "Usage: $0 [shell|load|run] ..." exit -1 fi cur_dir=`dirname $0` cur_dir=`cd $cur_dir && pwd` case $1 in (shell) main_class=com.yahoo.ycsb.CommandLine option="" ;; (load) main_class=com.yahoo.ycsb.Client option="-load" ;; (run) main_class=com.yahoo.ycsb.Client option="-t" ;; (*) echo "Invalid command: $1" exit -2 ;; esac extra_args=`echo $@ | awk '{for(i=2; i<=NF; i++) printf("%s ",$i)}'` class_path=$cur_dir/../target/fs-test-1.0-SNAPSHOT.jar # 这些是编译时依赖的jar包 for jar in $cur_dir/../target/lib/*.jar; do class_path=$class_path:$jar echo $class_path done java -cp $class_path $main_class $option \ -db com.will.fs.FSClient \ $extra_args

    5.ycsb执行和结果查看 load:准备数据,insert操作 run:读取数据,read操作 结果查看:https://www.cnblogs.com/bonelee/p/6282795.html

    Reference: [1] https://www.cnblogs.com/bonelee/p/6282798.html [2] https://segmentfault.com/a/1190000007427156 [3] https://www.jianshu.com/p/73d22befe47d

    Processed: 0.009, SQL: 9