こんにちは、Aireです。
今回はqperfという性能測定ツールの使い方を紹介します。
目次
qperfとは
ノード間のネットワークスループットやレイテンシを測定できるツールです。
片方のノード(サーバノード)でqperfを引数なしで実行し、もう一方のノード(クライアントノード)で測定方法を引数で指定することで、目的に応じた性能測定が可能です。以下に簡単な実行例を示しておきます。
- クライアントノードからサーバノード方向へのスループットの測定を実施
1 2 |
[サーバノード] qperf [クライアントノード] qperf -ip 19766 --use_bits_per_sec <サーバノードのIPアドレス> tcp_bw |
- クライアントノードからサーバノード方向へのレイテンシの測定を実施
1 2 |
[サーバノード] qperf [クライアントノード] qperf -ip 19766 <サーバノードのIPアドレス> tcp_lat |
qperfのインストールおよび実行方法
本記事ではLinuxサーバを使用してqperfをインストールおよび実行する方法を記載します。今回使用したLinuxサーバのOS情報は以下の通りです。
項目 | 値 |
---|---|
OS (cat /etc/redhat-release) | CentOS Linux release 7.9.2009 (Core) |
Kernel (cat /proc/version) | Linux version 3.10.0-1160.53.1.el7.x86_64 |
qperfのインストール方法
以下の手順に従い、qperfのインストールや、ノード間の通信用にファイアウォールの設定を行います。
- ノードとなるLinuxサーバ上で以下のコマンドを実行します。
1 |
yum install qperf |
- ファイアウォールが無効の場合、ファイアウォールを開始します。
1 2 3 |
systemctl status firewalld # firewalldサービスの状態を確認 systemctl start firewalld # firewalldサービスを開始 systemctl enable firewalld # OS再起動後、firewalldサービスを自動起動(任意) |
- ファイアウォールで19765、19766番ポートの通信を許可し、設定変更を反映します。
1 2 3 |
firewall-cmd --permanent --add-port=19765/tcp --add-port=19766/tcp # 19765/19766ポートを恒久的に許可 firewall-cmd --reload # ファイアウォール設定を反映 firewall-cmd --list-all # ファイアウォール設定を表示 |
qperfの実行方法
ここではqperfによる性能測定の方法を紹介します。
前述の通りqperfを実行する際は、サーバノードとクライアントノードを使用します。
サーバノード
サーバノードでは”qperf”コマンドを引数なしで実行しておきます。
1 |
qperf |
クライアントノード
クライアントノードでは性能測定の目的に合わせて引数を指定します。以下に幾つかの実行方法を記載します。すべてのオプションを知りたい場合は、”man qperf”で確認してみてください。
- qperf <サーバノードのIPアドレス> conf
-
- 性能測定で使用するクライアントノードとサーバノードの構成概要を表示する
12345678910qperf 10.1.0.4 confconf:loc_node = vm-centos7u9-test1loc_cpu = 2 Cores: Intel Xeon Platinum 8171M @ 2.60GHzloc_os = Linux 3.10.0-1160.53.1.el7.x86_64loc_qperf = 0.4.9rem_node = vm-centos7u9-test2rem_cpu = 2 Cores: Intel Xeon Platinum 8171M @ 2.60GHzrem_os = Linux 3.10.0-1160.53.1.el7.x86_64rem_qperf = 0.4.9 - qperf <サーバノードのIPアドレス> quit
-
- サーバノードのqperfを停止する
12qperf 10.1.0.4 quitquit: - qperf -vv -ip 19766 -t 60 –use_bits_per_sec <サーバノードのIPアドレス> tcp_bw
-
- TCPの平均スループット(tcp_bw)を1秒間測定し(-t 1)、詳細情報をすべて出力する(-vv)
123456789101112131415161718192021222324qperf -vv -ip 19766 -t 1 --use_bits_per_sec 10.1.0.4 tcp_bwtcp_bw:bw = 660 Mb/secmsg_rate = 1.26 K/secmsg_size = 64 KiB (65,536)port = 19,766time = 1 sectimeout = 5 secsend_cost = 591 ms/GBrecv_cost = 364 ms/GBsend_cpus_used = 5 % cpussend_cpus_user = 1 % cpussend_cpus_intr = 1 % cpussend_cpus_kernel = 3 % cpussend_real_time = 1 secsend_cpu_time = 50 mssend_bytes = 84.5 MBsend_msgs = 1,290recv_cpus_used = 3 % cpusrecv_cpus_kernel = 3 % cpusrecv_real_time = 1 secrecv_cpu_time = 30 msrecv_bytes = 82.5 MBrecv_msgs = 1,259 - qperf -vvu -ip 19766 -t 60 <サーバノードのIPアドレス> tcp_lat
-
- TCPの平均レイテンシ(tcp_lat)を1秒間測定し(-t 1)、使用パラメータに関する詳細情報をすべて出力する(-vvu)
1234567qperf -vvu -ip 19766 -t 1 10.1.0.4 tcp_lattcp_lat:latency = 1.08 msmsg_size = 1 bytesport = 19,766time = 1 sectimeout = 5 sec
以上、ここまで。