ycsb使用

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章