cosbench使用

cosbench安装

1、软件包安装

1.1、部署jre环境
下载jre版本包,解压缩至/opt目录下

wget https://javadl.oracle.com/webapps/download/AutoDL?BundleId=242050_3d5a2bb8f8d4428bbe94aed7ec7ae784 -O  jre-8u251-linux-x64.tar.gz
tar -zxvf jre-8u251-linux-x64.tar.gz -C /opt/

配置jre环境变量

echo "export JAVA_HOME=/opt/jre1.8.0_251/" >> /etc/profile
echo "export CLASSPATH=/opt/jre1.8.0_251/lib" >> /etc/profile
echo "export PATH=/opt/jre1.8.0_251/bin:$PATH" >> /etc/profile
source /etc/profile

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

执行yum install -y nmap-ncat命令在线安装ncat包

1.3、安装curl
通常情况下,系统默认已经安装curl包
如系统未安装,可通过yum install curl -y命令在线安装

1.4、部署cosbench环境
官方提供的最新版本v0.4.2存在无法启动问题MESSAGE Bundle plugins/cosbench-log4j not found.,具体详见Github-Issues#383
为规避此问题,此处选择的是v0.4.2.c4版本

wget https://github.com/intel-cloud/cosbench/releases/download/v0.4.2.c4/0.4.2.c4.zip
unzip 0.4.2.c4.zip

2、其他调整

2.1、关闭防火墙
使用过程中需要关闭防火墙或者开放指定端口,通过以下任意一种方法均可以

关闭防火墙
执行systemctl stop firewalld命令即可

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

#开放driver角色服务端口

firewall-cmd --zone=public --add-port=18088/tcp --permanent
firewall-cmd --zone=public --add-port=18089/tcp --permanent
systemctl reload firewalld

#开放controller角色服务端口

firewall-cmd --zone=public --add-port=19088/tcp --permanent
firewall-cmd --zone=public --add-port=19089/tcp --permanent
systemctl reload firewalld

2.2、关闭MD5校验功能
参考Github-Issues#320,基于0.4.2.c4版本,读文件测试过程中会出现无法验证下载文件完整性错误(Unable to verify integrity of data download),导致读取测试任务中断(Terminate),故此处关闭S3的MD5校验功能

修改所有节点0.4.2.c4/cosbench-start.sh配置文件,在java后添加参数-Dcom.amazonaws.services.s3.disableGetObjectMD5Validation=true

[root@node241 0.4.2.c4]# cat cosbench-start.sh | grep java
/usr/bin/nohup java -Dcom.amazonaws.services.s3.disableGetObjectMD5Validation=true -Dcosbench.tomcat.config=$TOMCAT_CONFIG -server -cp main/* org.eclipse.equinox.launcher.Main -configuration $OSGI_CONFIG -console $OSGI_CONSOLE_PORT 1> $BOOT_LOG 2>&1 &

三、配置使用

cosbench工具使用按照流程可分为以下几个步骤:参数配置–服务启动–提交测试–分析结果
示例使用三个节点联机测试,配置示意如下:

node241 66.66.66.241 controller、driver
node242 66.66.66.242 driver
node243 66.66.66.243 driver

1、参数配置
controller和driver依赖不同系统配置来启动服务,在启动controller和driver服务时,需要先行定义角色配置

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

[root@node241 0.4.2.c4]# cat conf/controller.conf
[controller]
concurrency=1
drivers=3
log_level=INFO
log_file=log/system.log
archive_dir=archive

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

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

[driver3]
name=driver3
url=http://66.66.66.243:18088/driver
[controller]

concurrency
默认值为1,表示可以同时执行的工作负载数量
drivers
默认值为1,表示此controller控制的driver数量
log_level
默认值为INFO,可选值为TRACE、DEBUG、INFO、WARN、ERROR,表示日志打印等级
log_file
默认值为log/system.log,表示日志文件存放位置
archive_dir
默认值为archive,表示工作负载结果存放位置,当参数值为archive,则工作负载结果存放于0.4.2/archive目录内
[driverx]
当有多个driver时,第{n}个driver命名为[driver{n}]

name
用于标识driver节点的标签,名称可以自定义
url
访问driver节点的地址

1.2、driver配置
driver在初始化时读取conf/driver.conf配置文件启动负载器服务

[root@node241 0.4.2.c4]# cat conf/driver.conf 
[driver]
name=127.0.0.1:18088
url=http://127.0.0.1:18088/driver
[driver]
name
用于标识driver节点的标签,名称可以自定义
url
访问driver节点的地址

2、服务启动
2.1、controller启动
在controller角色节点执行以下命令启动controller

[root@node241 0.4.2.c4]# sh start-controller.sh

#检查controller服务启动情况
[root@node241 0.4.2.c4]# lsof -i:19088
COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
java    30012 root   88u  IPv6 184509      0t0  TCP *:19088 (LISTEN)
[root@node241 0.4.2.c4]# ps -aux | grep 30012
root     30012  0.6  4.2 4585852 165528 pts/0  Sl   15:51   0:06 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
注:若节点需要同时启动controller和driver角色,也可以使用sh start-all.sh命令启动(start-all.sh=start-driver.sh+start-controller.sh)

2.2、driver启动
在所有driver角色节点执行以下命令启动driver

[root@node242 0.4.2.c4]# sh start-driver.sh

#检查driver服务启动情况
[root@node242 0.4.2.c4]# lsof -i:18088
COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
java    23102 root  100u  IPv6 161668      0t0  TCP *:18088 (LISTEN)
[root@node242 0.4.2.c4]# ps -aux | grep 23102
root     23102  0.2  5.2 4597000 203344 pts/0  Sl   15:12   0:07 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

3、提交测试
可以使用以下两种方法提交测试(示例测试参数文件为config.xml)

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

[root@node241 0.4.2.c4]# sh cli.sh submit conf/config.xml

使用web控制台

web访问控制台地址http://{controller-ip}:19088/controller,点击submit new workloadsurl,提交测试文件即可

4、分析结果
使用命令行接口
在controller节点cosbench目录下,使用sh cli.sh info命令查看当前运行任务

使用web控制台
web访问控制台地址http://{controller-ip}:19088/controller,点击对应任务view detailsurl,查看当前运行状态及结果

使用的配置文件参数

实例:

<?xml version="1.0" encoding="UTF-8" ?>
<workload name="s3-sample" description="sample benchmark for s3">
  <storage type="s3" config="accesskey=<accesskey>;secretkey=<scretkey>;proxyhost=<proxyhost>;proxyport=<proxyport>;endpoint=<endpoint>" />
  <workflow>
    <workstage name="init">
      <work type="init" workers="1" config="cprefix=s3testqwer;containers=r(1,2)" />
    </workstage>
    <workstage name="prepare">
      <work type="prepare" workers="1" config="cprefix=s3testqwer;containers=r(1,2);objects=r(1,10);sizes=c(64)KB" />
    </workstage>
    <workstage name="main">
      <work name="main" workers="8" runtime="30">
        <operation type="read" ratio="80" config="cprefix=s3testqwer;containers=u(1,2);objects=u(1,10)" />
        <operation type="write" ratio="20" config="cprefix=s3testqwer;containers=u(1,2);objects=u(11,20);sizes=c(64)KB" />
      </work>
    </workstage>
    <workstage name="cleanup">
      <work type="cleanup" workers="1" config="cprefix=s3testqwer;containers=r(1,2);objects=r(1,20)" />
    </workstage>
    <workstage name="dispose">
      <work type="dispose" workers="1" config="cprefix=s3testqwer;containers=r(1,2)" />
    </workstage>
  </workflow>
</workload>

config="accesskey=;secretkey= :用户密钥对
endpoint=:网关
config="cprefix=s3testqwer;containers=u(1,2):桶的名称前缀和数量限制
objects=u(11,20):对象数

如何检查配置正确:
cosbench如果配置错误不会报错,这个时候就要看数据量以及吞吐量,带宽是不是有数据,如果有数据,那就代表已经跑起来了

如何检查数据一致性:
hasCheck参数打开

config="hashCheck=true;

之后查看日志,如果日志没有数据记录,那就代表数据一致

grep Inconsistent   /root/0.4.2.c3/log/mission/* 

碰到的问题:
1.nc也就是nmap-ncat安装失败
解决办法:更换yum源
2.某个节点controller或者driver启动不起来:
有可能是因为新手误操作,起了很多driver和controller进程,杀掉相应进程

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值