tencent cloud

フィードバック

COS負荷テストガイド

最終更新日:2023-03-14 16:20:32

    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 
      
    1. s3-config-sample.xmlファイルを編集し、タスクの設定情報を追加します。タスク設定は以下の5段階に分けられています:

      1. init段階:バケットを作成します。
      2. prepare段階:main段階の準備として、workerスレッドを使用し、PUT操作で指定したサイズのオブジェクトをアップロードします。
      3. main段階:workerスレッドがオブジェクトを指定した時間で読み書きします。
      4. cleanup段階:生成されたオブジェクトを削除します。
      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チェックサム機能を無効にします。
    -Dcom.amazonaws.services.s3.disableGetObjectMD5Validation=true
    


    5. cosbenchサービスを起動します。

    • centosの場合、以下のコマンドを実行します:

      sudo bash start-all.sh
      
    • ubuntuの場合、以下のコマンドを実行します:

      sudo bash start-driver.sh &
      sudo bash start-controller.sh &
      
    1. 以下のコマンドを実行してタスクをサブミットします。
      sudo bash cli.sh submit conf/s3-config-sample.xml
      

    さらに、このURLhttp://ip:19088/controller/index.html(ipはユーザーの負荷テストマシンのIPに置き換えます)によって実行状態を確認します。

    下図に示すように、5段階が表示されます:

    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日対応)