tencent cloud

COS負荷テストガイド
最終更新日:2024-11-13 11:40:54
COS負荷テストガイド
最終更新日: 2024-11-13 11:40:54

COSBenchの紹介

COSBenchはIntel社が開発した、オブジェクトストレージ向けの負荷テストツールです。S3プロトコルと互換性を持つオブジェクトストレージとして、Tencent CloudのCloud Object Storage (COS)は、このツールを使用して、読み取り/書き込みの負荷テストを実施できます。

システム環境

実行環境はCentOS 7.0以降のバージョンを推奨します。ubuntu環境では、予期せぬ問題が発生することがあります。

性能に影響する要因

コア数:コアが少なく、有効になっているworkerが多い場合、コンテキストの切替でオーバーヘッドが大量に発生しがちなため、負荷テストに32コアか64コアを推奨します。
NIC:出力トラフィックはNICに制限されるため、大きいファイルのトラフィック負荷テストには10GB以上のNICを推奨します。
リクエストするネットワークリンク:パブリックネットワークのリンクは質にばらつきがあります。また、パブリックネットワークからダウンロードするとき、パブリックネットワーク下りトラフィック料金が発生します。そのため、同じリージョンではプライベートネットワークアクセスを推奨します。
テスト時間:性能テストを実施するとき、比較的安定する値を測定できるように、テスト時間を長めにすることを推奨します。
テスト環境:プログラムが実行するJDKのバージョンは、性能に影響を与えます。例えば、HTTPSのテストで、古いバージョンのクライアントには暗号化アルゴリズムのGCM BUG、乱数ジェネレータにはロックなどの問題が発生することがあります。

COSBench 実行手順

1. COSBench GitHubウェブサイトからCOSBench 0.4.2.c4.zip圧縮パッケージをダウンロードし、サーバー上で解凍します。
2. 以下のコマンドを実行して、COSBenchの依存パッケージをインストールします。
centosの場合、以下のコマンドを実行して、依存パッケージをインストールします:
sudo yum install nmap-ncat java curl java-1.8.0-openjdk-devel -y
-ubuntuの場合、以下のコマンドを実行して、依存パッケージをインストールします
sudo apt install nmap openjdk-8-jdk
3. s3-config-sample.xmlファイルを編集し、タスクの設定情報を追加します。タスク設定は以下の5段階に分けられています:
3.1 init段階:バケットを作成します。
3.2 prepare段階:main段階の準備として、workerスレッドを使用し、PUT操作で指定したサイズのオブジェクトをアップロードします。
3.3 main段階:workerスレッドがオブジェクトを指定した時間で読み書きします。
3.4 cleanup段階:生成されたオブジェクトを削除します。
3.5 dispose段階:バケットを削除します。
設定例を以下に示します:
<?xml version="1.0" encoding="UTF-8" ?>
<workload name="s3-50M-sample" description="sample benchmark for s3">

<storage type="s3" config="accesskey=************************************;secretkey=************************************;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
キー情報。サブアカウントキーを使用し、最小権限ガイドに従うことで、使用上のリスクを低減させることをお勧めします。サブアカウントキーの取得については、サブアカウントのアクセスキー管理をご参照ください
cprefix
バケット名のプレフィックス。例えば、examplebucket
containers
パケット名中の数字の範囲。最後のパケット名はcprefixとcontainersから構成されます。例えば、examplebucket1、examplebucket2
csuffix
ユーザーのAPPID。APPIDの前に-の記号を付けることに注意してください(例:-1250000000)
runtime
負荷テストの実行時間
ratio
読み取りと書き込みの比率
workers
負荷テストのスレッド数
4. cosbench-start.shファイルを編集します。Java起動行に以下のパラメータを追加して、s3のmd5チェックサム機能を無効にします。```plaintext-Dcom.amazonaws.services.s3.disableGetObjectMD5Validation=true```![](https://qcloudimg.tencent-cloud.cn/raw/ac010bb86f091d709a0776b4e20a5858.png)5. cosbenchサービスを起動します。 - centosの場合、以下のコマンドを実行します:```plaintextsudo bash start-all.sh``` - ubuntuの場合、以下のコマンドを実行します:```plaintextsudo bash start-driver.sh &sudo bash start-controller.sh &```6. 以下のコマンドを実行してタスクをサブミットします。```plaintextsudo bash cli.sh submit conf/s3-config-sample.xml```さらに、このURL`http://ip:19088/controller/index.html`(ipはユーザーの負荷テストマシンのIPに置き換えます)によって実行状態を確認します。![](https://main.qcloudimg.com/raw/77f1631fa15141332d123fb472bab7ac.png)下図に示すように、5段階が表示されます:![](https://main.qcloudimg.com/raw/3ccb5a60253ceb20c6da9292582c4355.png)7. 次の例は、所属リージョンが北京リージョン、32コア、プライベートネットワーク帯域幅が17GbpsのCVMで行うアップロードおよびダウンロードパフォーマンステストです。次の2段階が含まれます。 1. prepare段階:100workerスレッドが50MBのオブジェクトを1000個アップロードします。 2. main段階:100workerスレッドがオブジェクトの読み書きを300秒実行します。
上記の段階1と段階2の性能テストを実行した結果は以下のとおりです:

8. 以下のコマンドを実行して、テストサービスを停止します。
sudo bash stop-all.sh

この記事はお役に立ちましたか?
営業担当者に お問い合わせ いただくか チケットを提出 してサポートを求めることができます。
はい
いいえ

フィードバック