tencent cloud

フィードバック

netperfを使用したテスト

最終更新日:2021-10-27 11:57:15

    操作シナリオ

    このドキュメントでは、netperfによってCVMの高スループットネットワークパフォーマンステストを行う方法についてご紹介します。

    ツールの紹介

    Netperf HPが開発したネットワークパフォーマンステストツールであり、主にTCPおよびUDPのスループットパフォーマンスをテストします。テスト結果は主に、システムから他のシステムへのデータ送信の速度、ならびに他のシステムからのデータ受信の速度を反映します。
    SAR ネットワークトラフィックの監視に用いられます。実行のサンプルは次のとおりです。
    sar -n DEV 1
    02:41:03 PM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
    02:41:04 PM eth0 1626689.00 8.00 68308.62 1.65 0.00 0.00 0.00
    02:41:04 PM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
    02:41:04 PM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
    02:41:05 PM eth0 1599900.00 1.00 67183.30 0.10 0.00 0.00 0.00
    02:41:05 PM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
    フィールドの解釈は次のとおりです。
    フィールド
    単位
    説明
    rxpck/s
    pps
    1秒あたりの受信パケット数、すなわち受信pps
    txpck/s
    pps
    1秒あたりの送信パケット数、すなわち送信pps
    rxkB/s
    kB/s
    受信帯域幅
    txkB/s
    kB/s
    送信帯域幅

    テストシーンおよびパフォーマンス指標

    テストシーン

    テストシーン
    クライアント側のコマンド実行
    SAR 監視指標
    UDP 64
    netperf -t UDP_STREAM -H <server ip> -l 10000 -- -m 64 -R 1 &
    PPS
    TCP 1500
    netperf -t TCP_STREAM -H <server ip> -l 10000 -- -m 1500 -R 1 &
    帯域幅
    TCP RR
    netperf -t TCP_RR -H <server ip> -l 10000 -- -r 32,128 -R 1 &
    PPS

    パフォーマンス指標

    指標
    説明
    64バイトUDP送受信PPS(パケット/秒)
    UDPによってバッチデータ伝送を行う際のデータ伝送スループットを表し、ネットワークの転送能力の限界を反映することができます(パケット損失の可能性あり)。
    1500バイトTCP送受信帯域幅(Mbits/秒)
    TCPによってバッチデータ伝送を行う際のデータ伝送スループットを表し、ネットワークの帯域幅能力の限界を反映することができます(パケット損失の可能性あり)。
    TCP-RR(回/秒)
    TCP長リンクにおいてRequest/Response操作を繰り返した場合のトランザクションスループットを表します。TCPのパケット損失なしにネットワーク転送を行う能力を反映することができます。

    操作手順

    テスト環境の準備

    1. 3台のテストサーバーを準備します。Linux CVMのカスタマイズ設定 を参照して、テストサーバーを購入してください。ここではテストサーバーにCentOS 8.2 OSを使用します。
    2. 順にテストサーバーにログインし、以下のコマンドを実行してnetperfツールをインストールします。CVMへのログイン方法については、標準ログイン方式を使用してLinuxインスタンスにログイン(推奨)をご参照ください。
    yum install -y sysstat wget tar automake make gcc
    wget -O netperf-2.7.0.tar.gz -c https://codeload.github.com/HewlettPackard/netperf/tar.gz/netperf-2.7.0
    tar zxf netperf-2.7.0.tar.gz
    cd netperf-netperf-2.7.0
    ./autogen.sh && ./configure && make && make install

    パケット送信パフォーマンスのテスト

    1. サーバー上でそれぞれ以下のコマンドを実行し、netperfおよびnetserverの残りのプロセスを停止します。
    pkill netserver && pkill netperf
    2. このうちサーバーaをクライアント側、 サーバーbとサーバーcをサーバー側とします。サーバー側で以下のコマンドを実行し、netserverを実行します。
    netserver
    返された結果が下図のとおりであれば、他のnetserverプロセスがまだ存在することを表します。手順1 中のコマンドを実行し、該当のプロセスを停止してください。
    
    
    返された結果が下図のとおりであれば、netserverの実行に成功したことを表します。続けて次の操作を行ってください。
    
    
    3. テストシーン で提供されたコマンドをクライアント側で実行し、クライアント側のパケット送信パフォーマンスがそれ以上向上しなくなるまでnetperfプロセスを増減し続けます。
    説明:
    コマンド実行を繰り返す必要があり、かつserver ipには異なるサーバーIPを使用する必要があります。1つのプロセスが最大パフォーマンスに達しない場合は、テスト支援スクリプト を実行し、プロセスを一括して開始することができます。
    4. クライアント側で以下のコマンドを実行し、クライアント側のパケット送信パフォーマンスの変化を観察し、最大値をとります。
    sar -n DEV 1
    得られた結果に基づき、パフォーマンス指標 を参照して分析を行うことで、CVMの高スループットネットワークパフォーマンスを測定することができます。

    パケット受信パフォーマンスのテスト

    1. サーバー上でそれぞれ以下のコマンドを実行し、netperfおよびnetserverの残りのプロセスを停止します。
    pkill netserver && pkill netperf
    2. このうちサーバーaをサーバー側、 サーバーbとサーバーcをクライアント側とします。サーバー側で以下のコマンドを実行し、netserverを実行します。
    netserver
    返された結果が下図のとおりであれば、他のnetserverプロセスがまだ存在することを表します。手順1中のコマンドを実行し、該当のプロセスを停止してください。
    
    
    返された結果が下図のとおりであれば、netserverの実行に成功したことを表します。続けて次の操作を行ってください。
    
    
    3. テストシーン で提供されたコマンドをクライアント側で実行し、クライアント側のパケット送信パフォーマンスがそれ以上向上しなくなるまでnetperfプロセスを増減し続けます。
    説明:
    コマンド実行を繰り返す必要があり、クライアント側はそれぞれnetperfを開始します。1つのプロセスが最大パフォーマンスに達しない場合は、テスト支援スクリプト を実行し、プロセスを一括して開始することができます。
    4. サーバー側で以下のコマンドを実行し、サーバー側のパケット受信パフォーマンスの変化を観察し、最大値をとります。
    sar -n DEV 1
    得られた結果に基づき、パフォーマンス指標 を参照して分析を行うことで、CVMの高スループットネットワークパフォーマンスを測定することができます。

    付録

    テスト支援スクリプト

    このスクリプトを実行すると、複数のnetperfプロセスを迅速に開始することができます。
    #!/bin/bash
    count=$1
    for ((i=1;i<=count;i++))
    do
    echo "Instance:$i-------"
    # 下記のコマンドはテストシーンの表内のコマンドに置き換え可能です
    # -Hの後にサーバーのIPアドレスを入力します。
    # -lの後にテスト期間を入力します。netperfが途中で終了しないように、期間を10000に設定します。
    netperf -t UDP_STREAM -H <server ip> -l 10000 -- -m 64 -R 1 &
    done
    
    お問い合わせ

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

    テクニカルサポート

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

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