cosbench性能测试

Cosbench - Cloud Object Storage Beachmark,是Intel开发的有的一个对象存储基准性能测试工具,支持open stack s3。

组件:driver  cosbench负载生成器,主要负责工作负载生成,发布针对云对象存储的操作和收集性能统计信息,可以通过http://{driver-ip}:18088/controller地址访问

Controller控制器,主要负责协调负载生成器共同执行工作负载,收集来自负载生成器的基准性能测试结果。可以通过http://{controller-ip}:19088/controller地址访问

注:controller和driver角色可以部署在同一个节点上

安装部署

部署jdk环境

安装nmap-ncat,controller和driver之间通信需要依赖nc环境

yum  -y  install nmap-ncat

部署cosbench环境

关闭防火墙

开放指定端口,driver角色需要使用到18089及18088,controller角色需要使用到19089及19088端口

关闭MD5检验功能

修该conbench-start.sh配置文件,在java后添加参数:

-Dcom.amazonaws.services.s3.disableGetObjectMD5Validation=true

Cosbench工具使用按照流程可分为以下几个步骤:参数配置-服务启动-提交测试-分析结果

节点主机名

节点IP地址

Cosbench角色

100.100.228.13

Controller、driver

100.100.228.12

Driver

100.100.228.14

Driver

  1. 参数配置

Controller在初始化时读取conf/controller.conf配置文件启动控制器服务

cosbench性能测试_第1张图片

[controller]

默认为1,表示可以同时执行的工作负载数量

Drivers

默认值为1,表示此controller控制的driver数量

Log_level

默认值为INFO,可选值为TRACE、DEBUG、INFO、WARN、ERROR,表示日志打印等级

Archive

表示工作负载结果存放位置

提交测试

使用命令行接口,在controller节点cosbench目录下,使用sh cli.sh submit {test.xml}命令提交测试

2. 参数说明

workload name: 测试时显示的任务名称,这里可以自行定义

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

storage type: 存储类型,这里配置为s3即可

config: 连接信息配置,accesskey和secretkey填写使用用户的key即可;proxyhost和proxyport填写http代理主机的IP和端口,有需要的话填写,没有可以删掉;endpoint填写rgw的访问地址

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

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

workers: 表示执行该阶段的时候开启多少个工作线程,创建bucket通过不会计算为性能,所以单线程也可以;

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: 表示运行的时间,时间默认为秒(和totalOps可以联合或者单独使用)

totalOps: 表示执行多少次操作,比如当该值为10,object=(1,00),那么本来是要创建100个对象,加上totalOps后,就要循环从1-100创建10次,总共创建1000个文件,但是实际上创建出的文件数还是只有100个,像覆盖性创建一样

operation type: 操作类型,可以是read、write、delete等。

ratio: 表示该操作所占有操作的比例,例如上面的例子中测试读写read的比例为80%,write的比例为20%;

config: 配置bucket的前缀后缀信息。注意write的sizes可以根据实际测试进行修改

cleanup: 环境清理阶段,主要是删除bucket中的数据,保证测试后的数据不会保留在集群中

dispose: 这个阶段是删除bucket

例如4k write一亿对象



    
    
    
        
            
            
            
                
                
                
            
            
                
                
                
            
            
                
                
                
            
        
    

你可能感兴趣的:(python,开发语言)