Netperf でLANをチェック
|

■ Netperf を使ったネットワークの性能計測を説明します
Netperf は、LANを含むさまざまなタイプのネットワークの性能を計測するベンチマークソフトです。■ メニュー
やさしく使えるネットワークのベンチマークソフトと してお すすめできます。
Netperf には UNIX 版と Windows 版が用意されていて、相互の版の間でも利用できます。
計測時にはメモリ上のデータについて転送を実行するので、ハードディスク上のファイル アクセスをしません。そのため、巨大なインターネットでも小規模なLANであっても、2台のPC間のネットワーク( 2ノード間 )についてのスループットとネットワーク遅延を計測できます。
このページは、「横浜ネットデイ」で学校内に敷設した下図のようなLAN回線を、かんたんにテストできるように作成しました。
このページでは、Netperf のもつ TCP、UDP、Berkeley Sockets のパフォーマンス計測機能のうち、TCP転送速度についてだけ、初心者にも使いやすく説明しています。書かれていない計測方法については、マニュアルを参 照してください。
※ Netperf のコピーライトは、米国ヒューレット パッカード社にあり、GPLに基づくオープンソースソフトウェア
ではありません。しかし非商用目的ならば、ドキュメントを含むソフトウェアの、利用、再編利用、配布ができます。
- 必要なもの
- ダウンロードする
- インストー ル方法
( Windows )
- インストール方法
( UNIX/Linux )
- かんたん な LAN回線のパフォーマンス計測 ( Windows )
- かんたんな LAN回線のパフォーマンス計測 ( UNIX )
- puddy_netperf をつかう
- 計測結果について
- 参考資料
必要なもの
Netperf を利用してネットワークのパフォーマンスを計測するには次のものが必要になります。
Netperf をインストールする双方のパソコンには、IPアドレスを割り当てることが必要です。
- 2台のネットワーク (TCP/IP) 通信の利用できる Windows または UNIX のパソコン。
- 計測したいネットワーク、LAN回線。
- UNIX で利用する場合は、ソースをコンパイルするための gcc など開発環境が必要です。
ダウンロードする
Netperf の公式サイトからソフトウェアをダウンロードします。
Windows 用最新版 : netserver-a4.exe 、netperf-a4.exe
UNIX 用最新版 : netperf-2.3.tar.gz
Netperf はクライアント/サーバー型のソフトウェアで、この2つがそろってはじめて計測ができます。
Windows 版には、実行可能なサーバーとクライアントのバイナリーが用意されているので、両方をダウンロードします。
UNIX 版は、入手したソースプログラムをコンパイルし、生成されたサーバーとクライアント使用します。
インストール方法 ( Windows 版)
ダウンロードした Windows 版 Netperf の2つのファイルを、Windows パソコンに適当な作業フォルダーを作ってコピーします。
ここでは Cドライブに、 ディレクトリ C:\NETPERF を作成してダウンロードした2つのソフトをコピーします。
Cドライブに作 業ディレクトリ C:\NETPERF を作成する。
作業ディレクトリにサーバーとクライアントをコピー。
作業ディレクトリに2つのソフトウェアをコピーすれば、インストール作業は終了です。
インストール方法 ( UNIX 版 )
ダウンロードした UNIX 版 Netperf のソースファイルを、適当な作業ディレクトリにコピーしてインストール作業をします。
@ ソースファイルを作業ディレクトリにコピーして解凍する
A makefile の次の個所をエディターで書き換える
# cd /usr/local/src
# cp /tmp/netperf-2.3.tar.gz .
# tar zxvf netperf-2.3.tar.gz
# cd netperf-2.3
※ リナックスワールド2004年7月号掲載記事の設定を参考にしました。
CFLAGS = -O -D$(LOG_FILE) -DNEED_MAKEFILE_EDIT
↓ 以下のように変更するCFLAGS = -O -D$(LOG_FILE) -DUSE_PROC_STAT -DDO_FIRSRT_BURST
# make
# make install |
C コマンドオプションをしらべる
# netserver -h
Usage: netserver [options]
Options:
-h Display this text
-d Increase debugging output
-p portnum Listen for connect requests on portnum.
-4 Do IPv4
-6 Do IPv6
-v verbosity Specify the verbosity level
Netperf の使いかたについては、マニュアルを参照します。
かんたんな LAN回線のパフォーマンス計測 ( Windows )
Netperf で2台のパソコン間のネットワークのパフォーマンスを計測します。
ここでは、オフィスや学校内LANを敷設したあとで、かんたんにネットワークのパフォーマンスを計測してみます。
@ 2台の Netperf をインストールしたパソコンを、計測するネットワークに接続する
接続図、写真
A Netperf サーバーを起動する
netperfserver-a4.exe のアイコンをダブルクリックすると、Netperf のサーバーが起動する。
netperfserver-a4.exe のアイコンをダブルクリックすると、Netperf のサーバーが起動する。
起動した NetperfServer は、ポート番号 12865 番でクライアントからの接続を待ち受ける。
B Netperf でセルフテストする
DOS窓を起動して C:\NETPERF の作業ディレクトリに移動し、同じPC上でNetperf クライアントを起動してテストをする。
自分のPCで起動している nepertserver ( IPアドレス:192.168.0.2 )に対して、netperf ( クライアント ) を利用してパフォーマンスを計測してみる。
サーバーの起動した自分のマシンの IP アドレス(192.168.0.2)を指定して netperf のベンチマークテストを実行した。この事例では、10秒間テストを実行して、スループットが 185.05 Mbit/sec と計測されています。
B Netperf クライアントを別のPCから起動して計測をする
ここでは Linux ( FedoraCore2 ) にインストールした Netperf サーバーとの間のベンチマークテストを実行します。
Netperf のサーバーのIPアドレス (192.168.0.22 ) を指定して netperf のベンチマークテストを実行した。
10秒間テストを実行して、スループットが 94.50 Mbit/sec と計測されています。
かんたんな LAN回線のパフォーマンス計測 ( UNIX )
ここでは FedoraCore2 Linux にインストールした Netperf の操作手順を説明します。
@ インストールした Netperf のサーバー netserver を起動する
起動した netserver は、ポート番号 12865 番で netperf クライアントからの接続を待ち受ける。
# cd /opt/netperf
# ./netserver
Starting netserver at port 12865
A サーバー netserver を起動したPC上で、クライアント netperf を ( 自分に向けて ) 実行する
サーバーの起動している自分のマシンの IP アドレス(192.168.0.22)を指定して netperf のベンチマークテストを実行した。
# ./netperf -H 192.168.0.22
TCP STREAM TEST to 192.168.0.22
Recv Send Send
Socket Socket Message Elapsed
Size Size Size Time Throughput
bytes bytes bytes secs. 10^6bits/sec
87380 16384 16384 10.00 2130.44
10.00 秒間のテスト実行して、スループットが 2130.44Mbit/sec でした。
B netperf クライアントで別のPCを計測をする
ここでは、WindowsXP にインストールした Netperf サーバーとの間のパフォーマンスを計測します。
10.00秒間テストを実行して、スループットが 94.11 Mbit/sec と計測されています。
# ./netperf -H 192.168.0.2
TCP STREAM TEST to 192.168.0.2
Recv Send Send
Socket Socket Message Elapsed
Size Size Size Time Throughput
bytes bytes bytes secs. 10^6bits/sec
8192 16384 16384 10.01 94.11
このテストで使用した相手方のPCと(サーバー/クライアントの) 役割を逆転させて、実行した時は 94.50 Mbit/secでした。
C Netperf サーバーを停止させる
ベンチマークテスト終了後は、次のコマンドで netserver を停止させることができます。
netserver は、クライアントの netperf から接続を受けて、レスポンスを返すだけですが、起動中はポート 2865 番を占有します。
# kill [ netserver のPID ]
puddy_netperf をつかう
■ puddy_netperf.exe を実行する
Windows 版 Netperf-2.1pl1 の公開ディレクトリには puddy_netperf/server が用意されています。
実際に puddy_netperf でベンチマークテストを 実行した結果です。
( puddy_netserver を上記の Linux マシンで起動させた環境で Windows 版 puddy_netperf を実行したものです。 )
計測結果について
■ 2つのノード間の径路
Netperf のベンチマークテストでは、デフォルト設定で2つのノード間の TCP ポート 12865番について10秒間実行されます。そのほかテストしたい TCP/UDP、ポート番号の指定はコマンドオプションにてできます。
パケットの通過するネットワーク径路にルーターやレイヤー3スイッチなどがある場合には、ルーティングやフィルタリングでパケット廃棄されてしまうことも あります。パケットが通過できない場合は、アクセス制限を確認してください。
また、径路にいくつかのHUBがある場合には、パケットの通過するハブの性能や段数のちがいを知ることができます。
■ 計測結果の精度は?
Netperf-2.3 の UNIX 版に付属する README の中では「 ・ ・ ・ 無償のベンチマークソフトウェアです、完璧さを期待しないでください。」と述べています。Netperf は開発時に想定した利用環境(ハードウェア、ネットワーク機器、・ ・ ・ )とはちがった環境で使用された場合には、計測結果の精度にも影響します。そこで、計測結果は「パフォーマンスの絶対評価用途には、精度は保証できない が、相対的な性 能評価や、ベ ンチマークソフトとして便利に利用ください。」と自分は解釈しています。
■ 計測方法を計画する
できるだけ Netperf の計測結果に客観性をもたせる計測方法を考えました。
簡単なベンチマークテストの場合には必要ありませんが、パフォーマンス・チューニングや「ケーブル回線トラブルの解決」がテスト目的の場合は検討事項とし てご利用ください。
・ イーサネット、TPC/IP の特性を考慮して計測方法を計画する。
・ 2つのノード間のテストは、実際に利用するパケットのタイプ(TCP/UDP) やMTU値を設定して実行する。
・ NetPerf でベンチマークテストをする際には、テストする径路に関係のないネットワーク機器はつながない。
・ Netperf の計測をする場合は、サーバーとクライアントの2台(ノード)のPCを特定の機種・製品に決めて実行する。
・ 計測はパケットの MTU 値は適切な値に固定して実行する。
・ 計測に使用する2台間のネットワークにでは、各点で相互にサーバーとクライアントの役割で計測を実行する。
・ 計測回数は複数回を実行して実測値の平均値を採用する。
■ 使ってわかったこと
まだ NetPerf は大きなネットワークで利用していませんが、自宅内LAN のレベルのテストではその価値を十分引き出せていないようです。
NetPerf のベンチマークテストで得られた計測値を、「ネットワーク計測用テスター」で得られる信号損失値と比較してみたいと考えています。
参考資料
このページを作成するにあたリつぎの資料を参考にしました。
・ Netperf 公式サイト
http://www.netperf.org/
・ Netperf を使う
http://www.asahi-net.or.jp/~pm5m-on/it/net/analyzer/netperf/
・ Hironobu's Homepage ( How to build Internet Server with Solaris 2.6: netperf-2.1.pl3 )
http://www.geocities.co.jp/SiliconValley/6633/solaris/solnetperf.html
・ [obu:02460] Re: netperf で速度が出ない…?
http://search.luky.org/obu/msg02459.html
・ 月刊誌「UNUX Magazine」1999/5月号
特集: PC UNIX ベンチマーク
もどる