You need to enable JavaScript to run this app.
文档中心
对象存储

对象存储

复制全文
下载 pdf
性能优化
COSBench 使用指南
复制全文
下载 pdf
COSBench 使用指南
COSBench(Cloud Object Storage Benchmark) 是一款 Intel 团队基于 Java 语言开发,用于衡量对象存储服务性能的压测工具。您可以使用 COSBench 工具对 TOS 进行读写性能压测,便于您评估对象存储 TOS 的性能,确保业务稳定。​
运行环境​
推荐在 CentOS 7.6 及以上版本环境运行 COSBench 工具,其他环境可能存在非预期问题。​
使用 COSBench​
  1. 下载针对 TOS 的 COSBench 工具安装包,并解压至本地。​
说明​
COSBench 工具不能直接用于压测 TOS,使用该工具前,您需要修改 COSBench 工具源码,然后使用修改后的源码制作 TOS COSBench 工具包,具体操作,请参见附录:制作 TOS COSBench 工具包。​
  1. 执行以下命令,安装 COSBench 的依赖库。​
  • ​
    sudo yum install nmap-ncat java curl java-1.8.0-openjdk-devel -y​
    ​
  1. 编辑 COSBench 工具包中的 s3-config-sample.xml 文件,配置压测任务信息。​
  • ​
    示例代码
    阶段说明
    参数说明
    ​
    ​
    <workload name="s3-sample" description="sample benchmark for s3">​
    ​
    <storage type="s3" config="accesskey=***;secretkey=***;endpoint=http://tos-s3-cn-beijing.ivolces.com;path_style_access=false;" />​
    ​
    <workflow>​
    ​
    <workstage name="init" closuredelay="90">​
    <work type="init" workers="1" config="cprefix=examplebucket;containers=r(1,2)" />​
    </workstage>​
    ​
    <workstage name="prepare">​
    <work type="prepare" workers="10" config="cprefix=examplebucket;containers=r(1,2);objects=r(1,1000);sizes=c(4)KB" />​
    </workstage>​
    ​
    <workstage name="main">​
    <work name="main" workers="100" runtime="300">​
    <operation type="read" ratio="80" config="cprefix=examplebucket;containers=u(1,2);objects=u(1,1000)" />​
    <operation type="write" ratio="20" config="cprefix=examplebucket;containers=u(1,2);objects=u(1001,2000);sizes=c(4)KB" />​
    </work>​
    </workstage>​
    ​
    <workstage name="cleanup">​
    <work type="cleanup" workers="10" config="cprefix=examplebucket;containers=r(1,2);objects=r(1,2000)" />​
    </workstage>​
    ​
    <workstage name="dispose">​
    <work type="dispose" workers="1" config="cprefix=examplebucket;containers=r(1,2)" />​
    </workstage>​
    ​
    </workflow>​
    ​
    </workload>​
    ​
    • ​
    ​
  • ​
  1. 编辑 cosbench-start.sh 文件,在该文件中添加如下参数,调整缓冲区的大小并关闭 md5 校验功能。缓存区的大小需不小于测试对象的大小,您可以根据实际情况设置该值。​
  • ​
    -Dcom.amazonaws.sdk.s3.defaultStreamBufferSize=104857600 -Dcom.amazonaws.services.s3.disableGetObjectMD5Validation=true -Dcom.amazonaws.services.s3.disablePutObjectMD5Validation=true​
    ​
  • ​Image​​
  1. 执行以下命令,启动 COSBench 工具。​
  • ​
    sudo bash start-all.sh​
    ​
  • 在 Debian 等操作系统中,可能由于 nmap 工具版本差异,导致 nc 命令的探测操作失败,影响 COSBench 启动。如果您遇到此类情况,可以编辑 cosbench-start.sh 文件,在 nc 探测命令中增加 -q 1 参数来解决问题。​
  • ​Image​​
  1. 执行以下命令,提交测试任务。​
  • ​
    sudo bash cli.sh submit conf/s3-config-sample.xml​
    ​
  1. 在浏览器打开 http://ip:19088/controller/index.html 地址(ip 需替换为压测服务器的 ip),查看测试任务状态。​
  • ​Image​​
  1. 完成测试后,执行以下命令,停止 COSBench 工具。​
  • ​
    sudo bash stop-all.sh​
    ​
附录:制作 TOS COSBench 工具包​
COSBench 工具不能直接用于压测 TOS,使用该工具前,您需要修改 COSBench 工具源码,然后使用修改后的源码制作 TOS COSBench 工具包。​
环境准备​
本文在以下环境制作 TOS COSBench 工具包,供您参考。​
  • 操作系统:macOS x86_64​
  • IDE 版本:Eclipse 4.15​
  • JDK 版本:1.8​
操作步骤​
  1. 在 GitHub 网站下载 COSBench 源码压缩包,并解压至本地。​
  • ​Image​​
  1. 在 Eclispe 导入 COSBench 源码。​
  1. 在 Eclipse 中,单击 File > Import... > Existing Projects into Workspace。​
  1. 在 Import Projects 对话框,选择 COSBench 源码中的 dev 目录,单击 Finish​
  • ​Image​​
  1. 单击 Eclipse > Settings... > Plug-in Development > Target Platform。​
  1. 在 Target Platform 对话框,单击 Add... 。​
  1. 在 Target Content 对话框的 Name 处,自定义 platform 的名称。​
  1. 单击 Add... > Directory,依次添加 COSBench 源码 dist 目录下的 main、osgi、osgi/libs 文件夹,单击 Finsh。​
  • ​Image​​
  1. 在 Target Platform 对话框,选中自定义的 platform,单击 Apply and Close。​
  • ​Image​​
  1. 配置 S3Storage.java 文件。​
  1. 在 cosbench-s3 文件夹中找到 S3Storage.java 文件。​
  1. 修改 S3Storage.java 文件的 clientConf.withSignerOverride 的值,修改为 AWSS3V4SignerType,指定使用 AWS V4 签名。修改后的示例如下:​
  • ​
    clientConf.withSignerOverride("AWSS3V4SignerType");​
    ​
  • ​Image​​
  1. 修改 S3Storage.java 文件的 client.setS3ClientOptions 的值,增加 disableChunkedEncoding,禁用 ChunkedEncoding。修改后的示例如下:​
  • ​
    client.setS3ClientOptions(new S3ClientOptions().withPathStyleAccess(parms.getBoolean(PATH_STYLE_ACCESS_KEY)).disableChunkedEncoding());​
    ​
  • ​Image​​
  1. 修改 S3Storage.java 文件的 client.putObject 的值,从而可以使用 BufferedInputStream 上传对象。修改后的示例如下:​
  • ​
    client.putObject(container, object, new BufferedInputStream(data), metadata);​
    ​
  • ​Image​​
  1. 生成 COSBench 工具包。​
  1. 在 Eclipse 中,单击 File > Export... > Plug-in Development > Deployable plugins and fragments。​
  1. 在 Deployable plug-ins and fragments 对话框,单击 Select All,设置 Directory 为 COSBench 源码中的 dist/osgi 目录。​
  • ​Image​​
  1. 单击 Options 页签,选中 Use class files compiled int the workspace,单击 Finish。​
  • ​Image​​
  1. 在 COSBench 源码目录下,执行以下命令,创建交付包。​
  • ​
    sh pack.sh cosbench-tos​
    ​
  • ​Image​​
  1. 执行以下命令,打包 COSBench 工具包。​
  • ​
    zip -r -X cosbench-tos.zip cosbench-tos​
    ​
​
最近更新时间:2026.08.10 16:50:49
这个页面对您有帮助吗?
有用
有用
无用
无用