美文网首页
COSBench 基础使用

COSBench 基础使用

作者: wayyyy | 来源:发表于2023-04-18 22:31 被阅读0次

    COSBench 是一个用于测试对象存储系统的分布式基准测试工具。主要由两个组件组成:

    • Driver(Load Generator)
      负责生成工作负载,向目标云对象存储发出操作;性能统计,可通过 http://:18088/driver/index.html 访问

    • Controller
      负责协调drivers集体执行工作,收集和汇总聚合来自driver实例的运行时状态或基准测试结果,可通过 http://:19088/controller/index.html访问

    两个组件可以混合部署在一个节点上,也可以分开来部署。

    启动和部署

    启动执行 ./start-all.sh 脚本

    启动后,可通过执行 sh cli.sh info 来查看启动结果:

    
    

    停止执行 ./stop-all.sh 脚本。

    driver 可以部署单个,也可以部署多个。如果需要部署多个,那么需要修改 conf/controller.conf 配置文件:

    [controller]
    drivers = 3
    log_level = INFO
    log_file = log/system.log
    archive_dir = archive
    
    [driver1]
    name = driver1
    url = http://192.168.1.51:18088/driver
    
    [driver2]
    name = driver2
    url = http://192.168.1.51:18188/driver
    
    [driver3]
    name = driver3
    url = http://192.168.1.51:18288/driver
    

    日志在可以查看。

    测试模板文件介绍
    <?xml version="1.0" encoding="UTF-8" ?>
    <workload name="s3-test1" description="10-100-4kb-test">
    
      <storage type="s3" config="accesskey=123;secretkey=123;endpoint=http://192.168.1.51:7480" />
    
      <workflow>
        <workstage name="init">
          <work type="init" workers="1" config="cprefix=cosbench;containers=r(1,1)" />
        </workstage>
    
        <workstage name="prepare">
          <work type="prepare" workers="1" config="cprefix=cosbench;containers=r(1,1);objects=r(1,100);sizes=c(4)KB" />
        </workstage>
    
        <workstage name="main">
          <work name="main" workers="8" runtime="30">
            <operation type="read" ratio="80" config="cprefix=cosbench;containers=u(1,1);objects=u(1,100)" />
            <operation type="write" ratio="20" config="cprefix=cosbench;containers=u(1,1);objects=u(100,200);sizes=c(4)KB" />
          </work>
        </workstage>
    
        <workstage name="cleanup">
          <work type="cleanup" workers="1" config="cprefix=cosbench;containers=r(1,1);objects=r(1,200)" />
        </workstage>
    
        <workstage name="dispose">
          <work type="dispose" workers="1" config="cprefix=cosbench;containers=r(1,1)" />
        </workstage>
    
      </workflow>
    </workload>
    

    参数说明:

    • workload name: 任务名称,这里可以自行定义

    • description : 描述信息,这里可以自己定义,示例写的是(10并发写100个4kb文件)

    • storage type: 存储类型,这里配置为s3即可,config: 连接信息配置,accesskey和secretkey填写使用用户的key,endpoint填写rgw的访问地址

    • workstage name: 执行的任务事项,cosbench是分阶段按顺序执行

      • init: 初始化阶段,主要是进行bucket的创建。

        • workers: 表示执行该阶段的时候开启多少个工作线程。
        • config: 配置的是存储桶bucket的名称前缀。
        • containers: 表示后缀,上例中将会创建以s3testqwer为前缀,后缀分别为1和2的bucket。
      • prepare: 初始化阶段,配置为bucket写入的数据,workers和config以及containers与init阶段相同

        • object: 表示一轮写入多少个对象,以及object的大小,示例中的objects=r(1,10);sizes=c(64)KB"代表写入1到10个大小为64KB的对象
    • main阶段: 进行测试的阶段:

      • workers: 开启多少线程数去执行操作。
      • runtime: 表示运行的时间,时间默认为秒。
      • operation type: 操作类型,可以是read、write、delete等。
      • ratio: 表示该操作所占有操作的比例,例如上面的例子中测试读写read的比例为80%,write的比例为20%。
      • config: 配置bucket的前缀后缀信息。
    • cleanup: 环境清理阶段,主要是删除bucket中的对象。

    • dispose: 这个阶段是删除bucket。

    执行:

    # sh cli.sh submit conf/s3-config-test.xml
    

    查看当前执行的任务:

    # 
    

    相关文章

      网友评论

          本文标题:COSBench 基础使用

          本文链接:https://www.haomeiwen.com/subject/bcykjdtx.html