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のベンチマーク
測定コマンド
測定にはサーバ側を
> iperf -s
と起動しておいてから、 クライアント側で以下のコマンド実行しました。
> iperf -c ホスト名
測定結果
測定結果は以下のとおりです。
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のベンチマーク
測定コマンド
測定にはサーバ側を
> iperf -s -u
と起動しておいてから、 クライアント側で以下のコマンド実行しました。
> iperf -c ホスト名 -u -b 100m
測定結果
測定結果は以下のとおりです。
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でいろいろクセがあったのですが、 解消されているようです。
ネットワーク接続の方法は自分の環境に合わせて選んでよさそうです。
コメント