cosbench的安装与集群中使用

cosbench的安装与集群中使用

1.安装

# 安装JDK
[root@k8s-01 ~]# yum install  java nmap-ncat

# 通过wget下载,或者直接通过浏览器输入下面的链接下载
[root@k8s-01 ~]# wget https://github.com/intel-cloud/cosbench/releases/download/v0.4.2.c4/0.4.2.c4.zip

# 解压
[root@k8s-01 ~]# unzip 0.4.2.c4.zip

# 解压后文件说明
[root@k8s-01 ~]# cd 0.4.2.c4
[root@k8s-01 0.4.2.c4]# ls -al *.sh
-rw-r--r-- 1 root root 2639 Jul  9  2014 cli.sh              # munipulate workload through command line
-rw-r--r-- 1 root root 2944 Apr 27  2016 cosbench-start.sh   # start internal scripts called by above scripts 
-rw-r--r-- 1 root root 1423 Dec 30  2014 cosbench-stop.sh    # stop internal scripts called by above scripts 
-rw-r--r-- 1 root root  727 Apr 27  2016 start-all.sh        # start both controller and driver on current node
-rw-r--r-- 1 root root 1062 Jul  9  2014 start-controller.sh # start controller only on current node 
-rw-r--r-- 1 root root 1910 Apr 27  2016 start-driver.sh     # start driver only on current node 
-rw-r--r-- 1 root root  724 Apr 27  2016 stop-all.sh         # stop both controller and driver on current node
-rw-r--r-- 1 root root  809 Jul  9  2014 stop-controller.sh  # stop controller olny on current node 
-rw-r--r-- 1 root root 1490 Apr 27  2016 stop-driver.sh      # stop diriver only on current node 

2.使用

1.启动

启动前
# 删除http_proxy环境变量
[root@k8s-01 0.4.2.c4]# unset http_proxy

启动   #注意要在cosbench解压之后的目录下进行操作,因为start-all.sh 中的变量获取的是相对路径
[root@k8s-01 0.4.2.c4]# sh start-all.sh 

绝对路径启动
[root@k8s-01 0.4.2.c4]# cd /root/cosbench; sh start-all.sh

停止所有服务
sh stop-all.sh

杀死进程
pkill -9 cosbench

2.查看是否启动

# 查看java进程
[root@k8s-01 0.4.2.c4]# ps -ef |grep java
root     2209528       1  1 11:13 pts/5    00:00:05 java -Dcosbench.tomcat.config=conf/driver-tomcat-server.xml -server -cp main/org.eclipse.equinox.launcher_1.2.0.v20110502.jar org.eclipse.equinox.launcher.Main -configuration conf/.driver -console 18089
root     2209784       1  1 11:13 pts/5    00:00:05 java -Dcosbench.tomcat.config=conf/controller-tomcat-server.xml -server -cp main/org.eclipse.equinox.launcher_1.2.0.v20110502.jar org.eclipse.equinox.launcher.Main -configuration conf/.controller -console 19089
root     2220882 2134956  0 11:21 pts/5    00:00:00 grep --color=auto java

# ip访问地址
http://${IP}:19088/controller/

3.运行配置文件

[root@k8s-01 0.4.2.c4]# sh cli.sh submit s3-config-sample.xml 
Accepted with ID: w1

4.名词解释

  • Op-Type : 操作类型

  • Op-Count : 操作总数

  • Byte-Count : 操作产生的 Byte

  • Avg-ResTime : 操作产生的平均时间

  • Avg-ProcTime : 操作的平均时间,这个是主要的延时参考,它反映了平均每次请求的时延,

    注:此处的值由总操作成功请求数除以总运行时间计算而来

  • Throughput : 吞吐量,主要反映了操作的并发程度,也是重要的参考

    注:此处数据量进制换算跟实际有所不同 (1 MB = 1000 × 1000 bytes),故测试的性能值要高于实际值

  • Bandwidth : 带宽,反映了操作过程中的平均带宽情况

  • Succ-Ratio : 操作的成功率

5.配置文件解析

【存储测试】cosbench测试工具 与配置详细参数- (cnblogs.com) # 详细参数

简单解释:

containers 字符串 容器选择表达式;例如 c(1), u(1,100)
cprefix 字符串 mycontainers_ 容器前缀
csuffix 字符串 容器后缀
objects 字符串 对象选择表达式;例如 c(1), u(1,100)
oprefix 字符串 myobjects_ 对象前缀
osuffix 字符串 对象后缀
<workload description="sample benchmark for s3" name="s3-sample">   # name为本次测试的名字

  <storage config="accesskey=aaa;secretkey=NfBPpAkMZlCxISIqbUogRfKlqrgnFutz7009R8MO;endpoint=http://10.121.121.4:7480" type="s3" />   # 只需修改config中的参数accesskey、secretkey、endopint(ip) config中的其他值全部删除。

  <workflow>

    <workstage name="init">
      <work config="cprefix=s3testqwer;containers=r(1,2)" type="init" workers="1" />
    </workstage>

    <workstage name="prepare">
      <work config="cprefix=s3testqwer;containers=r(1,2);objects=r(1,10);sizes=c(64)KB" type="prepare" workers="1" />
    </workstage>

    <workstage name="main">
      <work name="main" runtime="30" workers="8">
        <operation config="cprefix=s3testqwer;containers=u(1,2);objects=u(1,10)" ratio="80" type="read" />
        <operation config="cprefix=s3testqwer;containers=u(1,2);objects=u(11,20);sizes=c(64)KB" ratio="20" type="write" />
      </work>
    </workstage>

    <workstage name="cleanup">
      <work config="cprefix=s3testqwer;containers=r(1,2);objects=r(1,20)" type="cleanup" workers="1" />
    </workstage>

    <workstage name="dispose">
      <work config="cprefix=s3testqwer;containers=r(1,2)" type="dispose" workers="1" />
    </workstage>

  </workflow>

</workload>

上面配置解释

配置 阶段 线程数 操作(%为该阶段的线程分配比例) 桶的数量 执行次数(U范围内抽取,R 为循环) 对象的数量(U范围内抽取,R 为递增循环) 对象大小/个
init 1 Write 1 R(1,2)
prepare 1 Write R(1,2) U(1,10) 64KB
main 8 Read(80%) U(1,2) U(1,10)
Write(20%) R(1,2) U(11,20) 64KB
cleanup 1 Delete R(1,2) R(1,20)
dispose 1 Delete 1 R(1,2)

3.测试集群

1.集群配置

所有的集群节点中都要安装
# 安装JDK
[root@k8s-01 ~]# yum install  java nmap-ncat

# 通过wget下载,或者直接通过浏览器输入下面的链接下载
[root@k8s-01 ~]# wget https://github.com/intel-cloud/cosbench/releases/download/v0.4.2.c4/0.4.2.c4.zip

# 解压
[root@k8s-01 ~]# unzip 0.4.2.c4.zip

2.修改配置文件

首先修改要启动的controller端
vi ./conf/controller.conf


配置文件修改后
[controller]
drivers = 3     # 启动三个drivers端
log_level = INFO
log_file = log/system.log
archive_dir = archive

[driver1]   # IP不可为127.0.0.1 必须为公网ip 否则在前端页面访问报错!!!
name = driver1
url = http://10.121.121.30:18088/driver

[driver2]   # 根据要测试的节点添加driver配置
name = driver2
url = http://10.121.121.4:18088/driver

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

除了controller其他节点为如下所示,所有节点依次类推
[controller]
drivers = 1
log_level = INFO
log_file = log/system.log
archive_dir = archive

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

修改完所有配置文件后:

所有节点都要启动drivers
sh start-drivers.sh

要开启controller的节点直接可以:
sh start-all.sh      #全部开启

遇到的错误

cosbench + ceph集群(3个节点) 错误记录:

1.在写入对象的时候没有产生数据,
	原因:查看对象存储服务是否开启在xml配置文件指定的ip虚拟机中。可能会发生不在指定的虚拟机中,也就没有开启对象存储服务的的端口。
	默认端口7480    ssh test1     vi /etc/ceph/ceph.conf
	原因二:因为创建的对象没有创建桶的权限。需要开启,默认没有开启  代码:radosgw-admin caps add --uid=testid  --caps="buckets=*"

2.因为在cosbench进行测试后会有数据残留在数据池中,这时候可以通过删除池在重新创建来解决。
ceph df 查看池的信息

ceph osd pool delete 池名 池名 --yes-i-really-really-mean-it

ceph osd pool create 池名 32 32

借鉴自:

cosbench工具使用方法 - yuhaohao - 博客园 (cnblogs.com)

【存储测试】cosbench存储性能测试工具 - Luxf0 - 博客园 (cnblogs.com)

posted @ 2022-04-29 17:20  咸鱼尚可  阅读(459)  评论(0编辑  收藏  举报