nuttcp
最後はnuttcpを見てみよう。nuttcpにはさまざまなオプションが用意されている。バッファ長やnodelayのオプション、サービス・タイプのフィールドなどがあり、ネットワークのパフォーマンスに及ぼす影響を調べることができる。nuttcpでは、トータルの伝送速度と、直前1秒間の伝送速度を表示できる。
nuttcpのパッケージは、Fedora 9のリポジトリにはあるが、openSUSEやUbuntuにはない。ビルドとインストールの手順は次のとおりだ。
tar xjvf nuttcp-5.5.5.tar.bz2 cd ./nuttcp* cc -O3 -o nuttcp nuttcp-5.5.5.c strip nuttcp sudo install -m 555 nuttcp /usr/local/bin/
サーバの起動では「nuttcp -S」と指定する。クライアントは起動時にさまざまなオプションを指定でき、コマンドラインの最後にサーバのホスト名を指定する。次に示す例では、テストの実行中に毎秒ごとの伝送速度を表示し(-i1オプションで指定)、10秒経ったら終了する。
$ nuttcp -v -v -i1 192.168.10.210 nuttcp-t: v5.5.5: socket nuttcp-t: buflen=65536, nstream=1, port=5001 tcp -> 192.168.10.210 nuttcp-t: time limit = 10.00 seconds nuttcp-t: connect to 192.168.10.210 with mss=1448 nuttcp-t: send window size = 8192, receive window size = 43690 nuttcp-r: v5.5.5: socket nuttcp-r: buflen=65536, nstream=1, port=5001 tcp nuttcp-r: interval reporting every 1.00 second nuttcp-r: accept from 192.168.0.200 nuttcp-r: send window size = 8192, receive window size = 43690 85.3719 MB / 1.00 sec = 715.9765 Mbps 86.3684 MB / 1.00 sec = 724.5411 Mbps 85.9188 MB / 1.00 sec = 720.7551 Mbps 84.4201 MB / 1.00 sec = 708.2533 Mbps 87.7772 MB / 1.00 sec = 736.2222 Mbps 86.7372 MB / 1.00 sec = 727.5696 Mbps 91.4327 MB / 1.00 sec = 767.0191 Mbps 89.4166 MB / 1.00 sec = 750.2228 Mbps 85.4859 MB / 1.00 sec = 717.0937 Mbps 87.0377 MB / 1.00 sec = 729.9696 Mbps nuttcp-t: 870.1633 MB in 10.00 real seconds = 89091.75 KB/sec = 729.8396 Mbps nuttcp-t: 13923 I/O calls, msec/call = 0.74, calls/sec = 1392.10 nuttcp-t: 0.0user 22.3sys 0:10real 224% 0i+0d 0maxrss 0+3pf 16198+1383csw nuttcp-r: 870.1633 MB in 10.00 real seconds = 89083.52 KB/sec = 729.7722 Mbps nuttcp-r: 55254 I/O calls, msec/call = 0.19, calls/sec = 5524.09 nuttcp-r: 0.0user 6.7sys 0:10real 67% 0i+0d 0maxrss 0+20pf 62619+635csw
複数の通信を同時に実行することもできる。たとえば、-N3オプションを指定すると、3つの接続が開始される。-Bオプションを指定すると、クライアントはトラフィックの受信のみを行い、-Dオプションでは送信のみを行う。デフォルトでは両方向の通信を行う。
$ nuttcp -v -v -N3 -B 192.168.10.210 nuttcp-t: v5.5.5: socket nuttcp-t: buflen=65536, nstream=3, port=5001 tcp -> 192.168.10.210 nuttcp-t: time limit = 10.00 seconds nuttcp-t: connect to 192.168.10.210 with mss=1448 nuttcp-t: send window size = 8192, receive window size = 43690 nuttcp-t: 1239.8698 MB in 10.00 real seconds = 126944.75 KB/sec = 1039.9314 Mbps nuttcp-t: 19838 I/O calls, msec/call = 0.52, calls/sec = 1983.52 nuttcp-t: 0.0user 41.2sys 0:10real 413% 0i+0d 0maxrss 0+3pf 4758+3081csw nuttcp-r: v5.5.5: socket nuttcp-r: buflen=65536, nstream=3, port=5001 tcp nuttcp-r: accept from 192.168.0.200 nuttcp-r: send window size = 8192, receive window size = 43690 nuttcp-r: 1239.8698 MB in 10.00 real seconds = 126934.93 KB/sec = 1039.8509 Mbps nuttcp-r: 29899 I/O calls, msec/call = 0.34, calls/sec = 2989.25 nuttcp-r: 0.0user 8.5sys 0:10real 86% 0i+0d 0maxrss 0+18pf 12519+1847csw $ nuttcp -v -v -N3 -D 192.168.10.210 ... nuttcp-r: v5.5.5: socket nuttcp-r: buflen=65536, nstream=3, port=5001 tcp nuttcp-r: accept from 192.168.0.200 nuttcp-r: send window size = 8192, receive window size = 43690 nuttcp-r: 806.2317 MB in 10.00 real seconds = 82545.65 KB/sec = 676.2140 Mbps nuttcp-r: 67104 I/O calls, msec/call = 0.15, calls/sec = 6709.39 nuttcp-r: 0.0user 5.7sys 0:10real 57% 0i+0d 0maxrss 0+18pf 73018+378csw
nuttcpには、nepimと同様のさまざまなオプションがあり、ホスト間のネットワーク伝送速度の測定に役立つ機能が豊富に備わっている。nuttcpで-i1オプションを指定すると、nepimのデフォルトの動作と同様に、稼動中の毎秒ごとの伝送速度の情報が表示される。nuttcpのmanページには、サービス・タイプやバッファ・サイズをnuttcpの起動時に明示的に設定するための多数のオプションが説明されている。こうしたオプションを使うことで、自分のハードウェアやドライバが特定の設定値でうまく動作するかどうかを確認できる。「nepim --help」と指定すると、バッファ、ウィンドウ・サイズ、TCPオプションなどを設定できるさまざまなオプションが表示される。
nuttcpとnepimのどちらを使うかは、各自の都合で判断すればよいだろう。nepimにはopenSUSE用のパッケージがあり、nuttcpにはFedora用のパッケージがあるので、自分が使用しているディストリビューションに応じてどちらかを選ぶことになるかもしれない。
nepimとnuttcpには、ネットワーク・パケットのキュー・サイズを設定するためのオプションや、TCPの最大セグメント・サイズの設定などを行う高度なオプションも用意されており、通信の両側でソフトウェアの設定を変更してネットワーク・パフォーマンスを向上させることができる。一方、LMbenchでは、すばやくテストを実行でき、ネットワーク・リンクの伝送速度や遅延時間についての有用な情報を簡単に得ることができる。
Ben Martinは、ここ10年以上ファイルシステムに取り組んできた。博士号を取得し、現在はlibferris、各種ファイルシステム、検索ソリューションを中心にコンサルティングサービスを手がけている。
