tencent cloud

フィードバック

COS負荷テストガイド

最終更新日:2024-06-26 10:42:27

    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=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
    キー情報。サブアカウントキーを使用し、最小権限ガイドに従うことで、使用上のリスクを低減させることをお勧めします。サブアカウントキーの取得については、サブアカウントのアクセスキー管理をご参照ください
    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
    お問い合わせ

    カスタマーサービスをご提供できるため、ぜひお気軽にお問い合わせくださいませ。

    テクニカルサポート

    さらにサポートが必要な場合は、サポートチケットを送信して弊社サポートチームにお問い合わせください。24時間365日のサポートをご提供します。

    電話サポート(24 時間365日対応)