COSBench使用心得

栏目: Java · 发布时间: 4年前

内容简介:COSBench是一个测试云对象存储系统的分布式基准测试工具,有Driver和Controller两个关键组件组成,本文简要介绍通过S3接口使用COSBench测试Ceph的RGW。ceph集群操作系统版本:centos 7.4,内核 3.10.0ceph集群版本:Luminous版(版本号:12.2.10)

COSBench是一个测试云对象存储系统的分布式基准测试工具,有Driver和Controller两个关键组件组成,本文简要介绍通过S3接口使用COSBench测试Ceph的RGW。

一、测试环境

ceph集群操作系统版本:centos 7.4,内核 3.10.0

ceph集群版本:Luminous版(版本号:12.2.10)

集群规模:3台服务器

副本数:3

在6台测试客户端创建测试任务,其中10.11.16.47作为controller,10.11.16.48-52作为driver,测试集群的只读性能。

二、下载工具

  1. 下载COSBench工具并解压
wget https://github.com/intel-cloud/cosbench/releases/download/v0.4.2.c4/0.4.2.c4.zip
unzip 0.4.2.c2.zip
复制代码
  1. 安装 java 和curl
yun install java curl
复制代码
  1. 进入0.4.2.c4目录,赋予.sh文件执行权限
cd 0.4.2.c4
chmod +x *.sh
复制代码
  1. 关闭http服务防止冲突
unset http_proxy
复制代码
  1. 修改conf/controller.conf配置
[root@conf]# cat controller.conf 
[controller]
drivers = 5
log_level = INFO
log_file = log/system.log
archive_dir = archive

[driver1]
name = driver1
url = http://10.11.16.48:18088/driver

[driver2]
name = driver2
url = http://10.11.16.49:18088/driver

[driver3]
name = driver3
url = http://10.11.16.50:18088/driver

[driver4]
name = driver4
url = http://10.11.16.51:18088/driver

[driver5]
name = driver5
url = http://10.11.16.52:18088/driver
复制代码
  1. 修改各个Driver节点配置
[driver]
name=driver1
url=http://10.11.16.49:18088/driver
复制代码
  1. 启动COSbench的Driver和Controller
sh start-all sh  //Controller节点执行
sh start-driver.sh  //每个Driver节点执行
复制代码
  1. 验证

    默认情况下,COSBench的Driver监听端口18088,COSBench的Controller监听端口19088。 登录http://10.11.16.47:19088/controller/
COSBench使用心得

三、使用

这里主要简单介绍一下本文对应的配置文件,具体各配置参数说明需要看COSBench的PDF,可以在COSBench官方GitHub中找到。 在conf目录下新建test.conf文件,配置文件格式如下:

<?xml version="1.0" encoding="UTF-8" ?>
<workload name="test_read_only" description="this is a test">
  <storage type="s3" config="accesskey=******;secretkey=******;endpoint=域名:端口号;path_style_access=true" />
  <workflow>
    <workstage name="init">
      <work type="init" workers="1" config="cprefix=zmtest;containers=r(1,10)" />
    </workstage>
    <workstage name="prepare">
      <work type="prepare" workers="1" config="cprefix=zmtest;containers=r(1,10);objects=r(1,100);sizes=c(64)KB" />
    </workstage>
    <workstage name="main">
      <work name="main" workers="30" runtime="300">
        <operation type="read" ratio="0" config="cprefix=zmtest;containers=u(1,10);objects=u(1,100)" />
        <operation type="write" ratio="100" config="cprefix=zmtest;containers=u(1,10);objects=u(101,200);sizes=c(100)KB" />
      </work>
    </workstage>
    <workstage name="cleanup">
      <work type="cleanup" workers="1" config="cprefix=zmtest;containers=r(1,10);objects=r(1,200)" />
    </workstage>
    <workstage name="dispose">
      <work type="dispose" workers="1" config="cprefix=zmtest;containers=r(1,10)" />
    </workstage>
  </workflow>
</workload>
复制代码

主要分为5个阶段,init阶段负责顺序创建10个空的bucket,bucket前缀为zmtest;

prepare阶段负责向每个bucket中写入100个对象,每个对象大小为64KB,r(1,10)表示从1到10递增;

main阶段负责测试读和写,workers表示并发数,runtime表示运行时间,type表示类型,ratio表示读写比例。由于本文测试只读性能,所以read的比例为100,write为0。u(1,10)表示随机1到10。

cleanup阶段清理object;

dispose阶段清理bucket。

如果我们需要反复测试同一批数据,可以在后续测试总只留下main阶段,其余可以删除。

四、开始测试

测试方法有两种,一种是将写好的配置文件通过web的submit new workloads链接提交即可,另一种是执行sh脚本,这里简单介绍执行sh脚本过程。

在Controller节点上执行:

[root@0.4.2.c4]# pwd
/root/0.4.2.c4
[root@0.4.2.c4]# sh cli.sh submit conf/test.conf
Accepted with ID: w1
复制代码
上图参数和之前的不一样,只是为了说明情况。各参数说明如下:Op-type - 操作类型Op-Count - 操作总数Byte-Count - 操作产生的ByteAvg-ResTime - 操作产生的平均时间Avg-ProceTime - 操作的平均时间Throughput - 吞吐量,主要反映了操作的并发程度Bandwidth - 带宽

Succ-Ratio - 操作成功率


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

失业的程序员

失业的程序员

沈逸 / 2014-5-1 / 39.00元

这是一个程序员从失业到自行创业的奋斗历程,虽然囧事连连、过程曲折,却充满了趣味。本书以作者的真实创业经历为主线,文字幽默诙谐,情节生动真实,包括了招聘、团队管理和用户公关,以及技术架构设计、核心代码编写、商务谈判、项目运作等场景经验。 从初期的创业伙伴、领路人,到商业竞争对手,各种复杂的关系在各个关键时刻却都发生了意想不到的逆转。在历经千辛万苦,眼看快要成功时,主人公却几乎再次失业。 ......一起来看看 《失业的程序员》 这本书的介绍吧!

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

SHA 加密
SHA 加密

SHA 加密工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具