2 Star 6 Fork 3

weixiao / ycsb-web

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT

1. ycsb-web的项目简介

YCSB,全称为"Yahoo!Cloud Serving Benchmark", 是雅虎开发的用来对云服务进行基础测试的工具,其内部涵盖了常见的NoSQL数据库产品, 如Cassandra、MongoDB、HBase、Redis等等。在运行YCSB的时候,可以配置不同的workload和DB,也可以指定线程数和并发数等其他参数。

原生的YCSB,其纯命令行式的使用体验对我而言存在诸多不便,特别是在对测试的结果进行收集、汇总、分析和历史比对的时候。

于是乎,心里萌发出了一个想法,把YCSB平台化,它拥有简单的界面、而且具备YCSB所有的功能,此外,它需要支持分布式。因为,单节点的机器资源, 或许无法满足针对超大型数据库系统的基准性能测试。最后,YCSB压测的结果指标被DataCenter统一收集和汇总,以图表化的形式呈现给用户, 并可以支持与历史测试数据的各个维度进行对比。

2. ycsb-web目前支持的功能

  • 支持YCSB的所有功能,目前优先对HBase进行适配,但它理论上可以支持YCSB支持的所有数据库
  • 支持多执行器并发执行YCSB的压测任务
  • 支持YCSB压测任务的定时、以及单次触发
  • 压测任务界面化的编辑功能
  • 压测任务执行时日志实时预览
  • 压测任务依赖功能,比如:load -> run workloada -> run workloadb
  • 报警功能,任务运行失败及时报警
  • 压测任务调度报表展示、压测结果指标绘图(规划开发中)
  • 用户管理,用户与执行器功能绑定

3. 系统功能使用截图

3.1 执行器管理

创建执行器,支持绑定多个节点的地址,已实现分布式YCSB基准性能测试。

create-executor

show-executor

3.2 任务管理

创建一个YCSB的压测任务,可以设置为定时调度,也可以设置为一次执行, 任务参数示例:

-db com.leo.ycsb.job.executor.db.HBaseClient 
-P /Users/leojie/other_project/ycsb-web/conf/workloads/workloada 
-p hbase.config.file.path=/Users/leojie/other_project/ycsb-web/conf/hbase-site.xml 
-p table=usertable -p columnfamily=info 
-p recordcount=1000000 -p operationcount=1000000 
-p threadcount=20 -s -t

create-task

show-task

3.3 运行YCSB任务

我们在添加的任务操作按钮中选择执行一次。

查看任务的调度列表。

schedule-list

操作按钮中选择查看执行日志,如下图,YCSB压测任务的实时日志会输出到WebConsole中

show-log

任务运行结束或被kill之后,YCSB的测试汇总数据也会输出到界面中。

show-result

3.4 任务运行大屏

show-detail

3.5 任务失败报警

alarm

3.6 YCSB压测指标汇总

快马加鞭开发中

4. 开始使用

4.1 编译和运行

mvn clean package assembly:single

上述编译命令运行完成后,在ycsb-job-assembly模块的target目录下可以找到ycsb-web-1.0.0-bin.tar.gz 解压后的文件夹目录结构

dir

sh bin/ycsb-web-admin.sh start|stop|status|restart
sh bin/ycsb-web-executor.sh start|stop|status|restart

上述命令分别启动admin和executor

4.2 系统目录结构和相关配置

针对系统的一些自定义配置,请查看bin/ycsb-web-env.sh,以下配置会以系统变量的形式传递给spring boot的配置文件

# 设置ycsb admin所需的一些环境变量
# ycsb web admin web服务的端口号
export YCSB_ADMIN_SERVER_PORT="8888"
# ycsb web admin数据库配置
export YCSB_ADMIN_DB_HOST="127.0.0.1"
export YCSB_ADMIN_DB_PORT="3306"
export YCSB_ADMIN_DB_NAME="ycsb_web"
export YCSB_ADMIN_DB_USER="leo"
export YCSB_ADMIN_DB_PASSWORD="Yyf5211314!"
# ycsb web admin的报警邮箱配置
export YCSB_ADMIN_MAIL_HOST="smtp.aliyun.com"
export YCSB_ADMIN_MAIL_PORT="465"
export YCSB_ADMIN_MAIL_USER="weixiao.me@aliyun.com"
export YCSB_ADMIN_MAIL_FROM="weixiao.me@aliyun.com"
export YCSB_ADMIN_MAIL_PASSWD="your email password"

# 设置ycsb executor所需的一些环境变量
# ycsb executor web服务端口号
export YCSB_EXECUTOR_SERVER_PORT=8889
# ycsb admin 主页地址,用于executor与admin进行RPC通信
export YCSB_ADMIN_ADDR="http://127.0.0.1:8888/ycsb-job-admin"
# ycsb executor 名称
export YCSB_EXECUTOR_NAME="ycsb-job-executor"
# ycsb executor RPC远程地址
export YCSB_EXECUTOR_ADDR="http://127.0.0.1:9999/"
# ycsb executor RPC服务的IP和端口号
export YCSB_EXECUTOR_IP="127.0.0.1"
export YCSB_EXECUTOR_PORT="9999"

conf目录时系统的配置文件目录

conf

conf/sql 目录中的ycsb_web.sql文件需要执行下初始化数据库 conf/workloads 目录对应着ycsb的workloads ycsb-webapps是系统的静态资源目录,不用关注 logs目录是系统的日志目录

5. 总结

ycsb-web的idea源于JMeter,编码的实现则基于xxl-job和YCSB整合而来,两个毫不相干的项目,被强扭在了一起,看起来倒也契合, 这强扭的瓜或许也挺甜。

6. 特别鸣谢

XXL-JOB、YCSB

MIT License Copyright (c) 2021 weixiao Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

简介

对YCSB进行了Web化,使ycsb的压测工作可以在web端完成,并实现了分布式压测的能力,一键启动多个客户端,系统提供压测指标实时看板功能,以及指标汇总报告等能力,欢迎试用 展开 收起
MIT
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
1
https://gitee.com/weixiaotome/ycsb-web.git
git@gitee.com:weixiaotome/ycsb-web.git
weixiaotome
ycsb-web
ycsb-web
master

搜索帮助