文章 90
评论 1
浏览 778792
对象存储压力性能测试工具

对象存储压力性能测试工具

一、Cosbench工具

cosbench是intel开源的针对对象存储开发的测试工具

二、Cosbench安装

运行环境:centos7

依赖软件:JDK nmap-ncat

2.1 单台压测服务器部署

#安装依赖 [16:52:30 root@centos7 ~]#yum install java nmap-ncat #下载cosbench工具压缩包 [16:58:41 root@centos7 ~]#ls 0.4.2.c4 0.4.2.c4.zip [16:59:00 root@centos7 ~]#unzip 0.4.2.c4.zip #删除http_proxy环境变量 [17:00:04 root@centos7 ~]#unset http_proxy #启动cosbench [17:02:09 root@centos7 0.4.2.c4]#bash ./start-all.sh

2.2 多台测试客户端部署

#配置多个driver [17:05:07 root@centos7 0.4.2.c4]#cat conf/controller.conf [controller] drivers = 2 log_level = INFO log_file = log/system.log archive_dir = archive [driver1] name = driver1 url = http://127.0.0.1:18088/driver [driver2] name = driver2 url = http://192.168.10.71:18088/driver #启动服务 [17:05:07 root@centos7 0.4.2.c4]#bash start-all.sh #在其他客户端只启动driver [17:07:14 root@centos7 0.4.2.c4]#bash start-driver.sh

2.3 web管理端

访问控制端的19088的controller

三、使用教程

进入conf目录下,查看s3-config-sample.xml配置文件内容如下:

  • workload name:测试时显示的任务名称,这里可以自行定义
  • description:描述信息
  • storage type:存储类型,这里默认s3
  • config:对该类型的配置,accesskey访问accesskey,secretkey访问secretkey,endpoint访问的API
  • workstage name : cosbench是分阶段按顺序执行,此处为init初始化阶段,主要是进行bucket的创建,workers表示执行该阶段的时候开启多少个工作线程,创建bucket通过不会计算为性能,所以单线程也可以;config处配置的是存储桶bucket的名称前缀;containers表示轮询数,上例中将会创建以s3testqwer为前缀,后缀分别为1和2的bucket
  • prepare阶段 : 配置为bucket写入的数据,workers和config以及containers与init阶段相同,除此之外还需要配置objects,表示一轮写入多少个对象,以及object的大小。
  • main阶段 : 这里是进行测试的阶段,runtime表示运行的时间,时间默认为秒
  • operation type : 操作类型,可以是read、write、delete等。ratio表示该操作所占有操作的比例,例如上面的例子中测试读写,read的比例为80%,write的比例为20%; config中配置bucket的前缀后缀信息。注意write的sizes可以根据实际测试进行修改
  • cleanup阶段 : 这个阶段是进行环境的清理,主要是删除bucket中的数据,保证测试后的数据不会保留在集群中
  • dispose阶段 : 这个阶段是删除bucket
#修改后的文件 <?xml version="1.0" encoding="UTF-8" ?> <workload name="s3-sample" description="sample benchmark for s3"> <storage type="s3" config="accesskey=minioadmin;secretkey=minioadmin;endpoint=http://192.168.10.71:9000" /> <workflow> <workstage name="init"> <work type="init" workers="1" config="cprefix=s3testqwer;containers=r(1,2,3)" /> </workstage> <workstage name="prepare"> <work type="prepare" workers="1" config="cprefix=s3testqwer;containers=r(1,2,3);objects=r(1,100);sizes=c(1024)KB" /> </workstage> <workstage name="main"> <work name="main" workers="8" runtime="60"> <operation type="read" ratio="70" config="cprefix=s3testqwer;containers=u(1,2,3);objects=u(1,100)" /> <operation type="write" ratio="30" config="cprefix=s3testqwer;containers=u(1,2,3);objects=u(101,200);sizes=c(1024)KB" /> </work> </workstage> <workstage name="cleanup"> <work type="cleanup" workers="1" config="cprefix=s3testqwer;containers=r(1,2,3);objects=r(1,200)" /> </workstage> <workstage name="dispose"> <work type="dispose" workers="1" config="cprefix=s3testqwer;containers=r(1,2,3)" /> </workstage> </workflow> </workload>

执行

bash cli.sh submit conf/s3-config-sample.xml

测试数据查看

  • Op-Type : 操作类型
  • Op-Count : 操作总数
  • Byte-Count : 操作产生的Byte
  • Avg-ResTime : 操作产生的平均时间
  • Avg-ProcTime : 操作的平均时间,这个是主要的延时参考,它反映了平均每次请求的时延
  • Throughput : 吞吐量,主要反映了操作的并发程度,也是重要的参考
  • Bandwidth : 带宽,反映了操作过程中的平均带宽情况
  • Succ-Ratio : 操作的成功率

标题:对象存储压力性能测试工具
作者:Carey
地址:HTTPS://www.zhangzhuo.ltd/articles/2021/09/13/1631524067685.html

生而为人

你是夜猫子呀?这么晚还不睡觉,明天起的来嘛
取消