COSBench 是一款由 Intel 开源,用于对象存储的压测工具。腾讯云对象存储(Cloud Object Storage,COS)作为兼容 S3 协议的对象存储系统,可使用该工具进行读写性能压测。
工具推荐运行在 CentOS 7.0 及其以上版本,ubuntu 环境可能存在预期外的问题。
对于 centos 系统,执行如下命令安装依赖:
sudo yum install nmap-ncat java curl java-1.8.0-openjdk-devel -y
对于 ubuntu 系统,执行如下命令安装依赖
sudo apt install nmap openjdk-8-jdk
编辑 s3-config-sample.xml 文件并添加任务配置信息,任务配置主要包含如下五个阶段:
示例配置如下:
<?xml version="1.0" encoding="UTF-8" ?>
<workload name="s3-50M-sample" description="sample benchmark for s3">
<storage type="s3" config="accesskey=AKIDHZRLB9Ibhdp7Y7gyQq6BOk1997xxxxxx;secretkey=YaWIuQmCSZ5ZMniUM6hiaLxHnxxxxxx;endpoint=http://cos.ap-beijing.myqcloud.com" />
<workflow>
<workstage name="init">
<work type="init" workers="10" config="cprefix=examplebucket;csuffix=-1250000000;containers=r(1,10)" />
</workstage>
<workstage name="prepare">
<work type="prepare" workers="100" config="cprefix=examplebucket;csuffix=-1250000000;containers=r(1,10);objects=r(1,1000);sizes=c(50)MB" />
</workstage>
<workstage name="main">
<work name="main" workers="100" runtime="300">
<operation type="read" ratio="50" config="cprefix=examplebucket;csuffix=-1250000000;containers=u(1,10);objects=u(1,1000)" />
<operation type="write" ratio="50" config="cprefix=examplebucket;csuffix=-1250000000;containers=u(1,10);objects=u(1000,2000);sizes=c(50)MB" />
</work>
</workstage>
<workstage name="cleanup">
<work type="cleanup" workers="10" config="cprefix=examplebucket;csuffix=-1250000000;containers=r(1,10);objects=r(1,2000)" />
</workstage>
<workstage name="dispose">
<work type="dispose" workers="10" config="cprefix=examplebucket;csuffix=-1250000000;containers=r(1,10)" />
</workstage>
</workflow>
</workload>
参数说明
参数 | 描述 |
---|---|
accesskey、secretkey | 密钥信息,分别替换为用户的 SecretId 和 SecretKey |
cprefix | 存储桶名称前缀,例如 examplebucket |
containers | 为存储桶名称数值区间,最后的存储桶名称由 cprefix 和 containers 组成,例如:examplebucket1,examplebucket2 |
csuffix | 用户的 APPID,需注意 APPID 前面带上符号- ,例如 -1250000000 |
runtime | 压测运行时间 |
ratio | 读和写的比例 |
workers | 压测线程数 |
-Dcom.amazonaws.services.s3.disableGetObjectMD5Validation=true
对于 centos 系统,执行以下命令:
sudo bash start-all.sh
对于 ubuntu 系统,执行以下命令:
sudo bash start-driver.sh &
sudo bash start-controller.sh &
sudo bash cli.sh submit conf/s3-config-sample.xml
并通过该网址http://ip:19088/controller/index.html
(ip 替换为用户的压测机器 IP)查看执行状态:
此时可以看到五个执行阶段,如下图所示:
7. 下面展示的是所属地域为北京地域、32核、内网带宽为17Gbps的 CVM 进行上传和下载性能测试,包括以下2个阶段:
1. prepare 阶段:100个 worker 线程,上传1000个50MB对象。
2. main 阶段:100个 worker 线程混合读写对象,运行300秒。
经过以上阶段1和阶段2的性能压测,结果如下:
8. 执行以下命令,停止测试服务。
sudo bash stop-all.sh
本页内容是否解决了您的问题?