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

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

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

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

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

Amazonのベストセラー
(ジャンル: Linux)

ベンチマークの方法

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

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

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

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

ベンチマーク環境

以下の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 ホスト名

測定結果

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

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のベンチマーク

測定コマンド

測定にはサーバ側を

> iperf -s -u

と起動しておいてから、 クライアント側で以下のコマンド実行しました。

> iperf -c ホスト名 -u -b 100m

測定結果

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

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でいろいろクセがあったのですが、 解消されているようです。

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

SEO [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送