ネットワークのベンチマーク

coLinuxのネットワークの接続方法には、 いろいろな手段があります(詳しくはこちら)。

初めてcoLinuxを使おうという人はどの方法を使ったらよい かわかりにくいかと思いますので、 とりあえずTAP-Win32ドライバとWinPCapを用いた場合の ベンチマークを取ってみました。

厳密に測定したわけでないのであくまでも参考値に過ぎませんが、 接続方法に迷っている人は参考にしてみてください。 ただし、私はWindows2000しか使っていないので、 WindwosXPの方には参考にならないかもしれません。

なお、coLinuxは0.8.0(20080113)を使っています。

ベンチマークの方法

ベンチマークにはIperfという ネットワークパフォーマンス測定ツールを使用しました。

IperfはTCP・UDPのそれぞれについて、 ネットワーク帯域を測定することができます。

Iperfはサーバーモードで起動しておいてから、 クライアントモードで接続して測定するといおう方法をとります。 なので、サーバ・クライアントを入れ替えることで更に2種類の 測定も行うことになります。

LinuxでのIperfはDebianのバイナリパッケージを利用しましたが、 Windowsでは http://iperf.sourceforge.net/で 配布されているバイナリパッケージを使用しました。

ベンチマーク環境

以下の2台のPCが100BASE-TXで接続されている環境で ベンチマークを行いました。

  • Windows2000/Athlon XP2500…これがcoLinuxのホストPCです。
  • Linux/Turion64 1.6GHz…ファイルサーバーをしています。

この環境で、 coLinuxのネットワーク接続方法をTAP-Win32とWinPCapで切り替えて、 各PCとのネットワークパフォーマンスを測定しました。 また、参考に各PC同士のパフォーマンスも測定しました。

なお、TAP-Win32を用いた接続では、さらに、 Host PCをルータにして接続をした場合 (coLinuxのインストール TAP-Win32でのルータ接続)と、 Ethernet Bridge 2.0を使用したブリッジ接続をした場合 (Windows2000でTAP-Win32ドライバを使ったブリッジ接続) で測定しました。

TCPのベンチマーク

測定コマンド

測定にはサーバ側を
[plain toolbar=false gutter=false highlight_lines=”1″]
> iperf -s
[/plain]

と起動しておいてから、 クライアント側で以下のコマンド実行しました。
[plain toolbar=false gutter=false highlight_lines=”1″]
> iperf -c ホスト名
[/plain]

測定結果

測定結果は以下のとおりです。

TCP(Mbit/sec)
Server
colinux
(WinPcap:ブリッジ)
colinux
(TAP32:ルータ)
colinux
(TAP32:ブリッジ)
Windows
2000
linux
Client colinux
(WinPcap:ブリッジ)
1177.6 93.7 26.3 (*1)
colinux
(TAP32:ルータ)
1361.9 107 92.8
colinux
(TAP32:ブリッジ)
1198.1 81.7 92.8
Windows2000 77.5 158 42.2 672 93.7
linux 85.9 85.8 85.6 86.0 4393.0

結果考察

クライアントとサーバーを同じマシンで動かしている場合に パフォーマンスが非常に高くなっていますが、 これは実際にはデータはネットワークに流れておらず マシン内部で処理されているためです(ループバック処理)。 この場合のパフォーマンスはおそらくOSのプロトコルスタック処理の早さと、 CPUの速さが影響すると思われます。

この結果で最も注目すべきは、(*1)で示した部分です。 WinPcapを使った場合は、 ホストPCとのデータ転送はまずまずのパフォーマンスがでていますが、 LAN上のPCとは非常に悪くなっています。

UDPのベンチマーク

測定コマンド

測定にはサーバ側を
[plain toolbar=false gutter=false highlight_lines=”1″]
> iperf -s -u
[/plain]

と起動しておいてから、 クライアント側で以下のコマンド実行しました。
[plain toolbar=false gutter=false highlight_lines=”1″]
> iperf -c ホスト名 -u -b 100m
[/plain]

測定結果

測定結果は以下のとおりです。

UDP(Mbit/sec)
Server
colinux
(WinPcap:ブリッジ)
colinux
(TAP32:ルータ)
colinux
(TAP32:ブリッジ)
Windows
2000
linux
Client colinux
(WinPcap:ブリッジ)
100 80.4 99.3
colinux
(TAP32:ルータ)
99.4 98.7 94.3
colinux
(TAP32:ブリッジ)
99.5 88.3 94.2
Windows2000 93.8 99.5 100 100 94.8
linux 87.6 84.7 87.0 85.5 100

結果考察

以前はUDPで動作が不安定なことがありましたが、 測ってみると最近のcolinuxでは安定したスループットを出している 事がわかります。 安心してUDPを使えそうです。

まとめ

以前は、WinPCapとTAP-Win32でいろいろクセがあったのですが、 解消されているようです。

ネットワーク接続の方法は自分の環境に合わせて選んでよさそうです。

フォローする