Teaming,Loadbalancer 
この間、このサーバに移る前のジャンク鯖で使っていたPCI-XのIntel pro 1000/MT Server adapterをごろ寝マシン兼ファイルサーバに移植した。前はドライバを当てただけで満足して深く使っていなかったのだけど、この1000/MT Serverアダプタには中々面白い機能がついていた。
それはチーミング(teaming)という機能だ。チーミングとは、複数のNICを束ねて1つにしてパフォーマンスを上げようという技術で、、ネットワークカード1とネットワークカード2を束ねたネットワークカード3というものを仮想的に作り、ネットワークカード3へのアクセスは1と2を使って分散させてアクセスする、という構図だ。IntelNIC+その他のNICという組み合わせも出来た。


こんなおいしい機能に今まで気がつかなかったなんて…

選べる機能は以下の通り。

http://support.dell.com/support/edocs/n ... /usage.htm

このうち、NICをまとめて帯域を倍にするリンク・アグリゲーションは、サーバーとクライアント両方のNICが対応していて、なおかつP2P接続であるかハブが対応しているかでないと意味をなさない。
なので普通のスイッチングハブを介してしまっている今の自分の環境では帯域を倍にすると言うことは出来ない。だが、同じハブにつながっている限り、回線の2重化は出来るので、2本のうちの1本が通信できなくても通信はもう一本の方の回線を使って続行される。

試しにアグリゲーションした状態で1本のケーブルをハブから抜いてみても通信は続行された。

そしてこの中で一番おいしい機能は通信の負荷状況によって使うNICを割り振るロードバランシングだろう。
これが使えれば、ごにょごにょしててもNICの負荷に応じて使うNICを割り振ってくれるのでファイルサーバとしてアクセスが遅くなると言うこともない。そして回線も2重化されている。

早速これを試してみたところ、確かに大量にセッションを張ってもブラウジングが遅くなると言うことはなかった。だがこれは思い込み効果かもしれないので、実際にベンチをとって数値にしてみた。

長いので省略されました。根気のある人だけ進んでください

環境
Server
CPU Mem OS NIC
Intel E5200@3.31GHZ 4GB@1000MHz,5-5-5-18 WinXP IntelPro1000/MT Server,Realtek RTL8169/8110
Client 1(Main)
CPU Mem OS NIC
E8400 @4.32GHz 8G@960,6-6-6-18 WinXP Realtek RTL8168C(P)/8111C(P)
Client 2(ML115)
CPU Mem OS NIC
Athlon X2 5000+BE@3GHz 4GB,800MHz WinXP Broadcom NetXtreme Gigabit Ethernet
Client 3(VersaPro)
CPU Mem OS NIC
Pentium M 740 (1.73 GHz) 768MB,566MHz WinXP Broadcom NetXtreme Gigabit Ethernet


測定方法
まず、NIC純粋の性能を測るためSoftetherのClientについてくるVPN toolsを使用。要領としてはNetperfと同じ。
https://www.softether.com/jp/download/

そして中間にはGibなスイッチングハブがおいてあり、そこを通じてすべてのPCは通信する。



まずバランシングをしないで別々のNICで計ってみる。
メインマシン to Intel pro 1000/MT


サーバー 192.168.1.4 (・amp;#124;ート 9821) への接続を開始します。32 本の TCP コネク
ンを接続します。
1 本目の TCP コネクションを接続しました。
データ伝送方向: ダウンロード (サーバー -> クライアント)
2 本目の TCP コネクションを接続しました。
データ伝送方向: アップロード (クライアント -> サーバー)
3 本目の TCP コネクションを接続しました。



データ伝送方向: ダウンロード (サーバー -> クライアント)
32 本目の TCP コネクションを接続しました。
データ伝送方向: アップロード (クライアント -> サーバー)

すべてのコネクションが確立されたので、データ送受信を開始しました。
測定開始時刻: 2009年 3月 1日(日) 4時32分41秒
完了予定時刻: 2009年 3月 1日(日) 4時32分56秒

計測中です。しばらくお待ちください。
(測定中は他のアプリケーションを使用しないでください。)

15.0 秒以上が経過したので、データ通信を終了します。

クライアントプログラムが終了しました。


通信スループット測定ツールによる測定結果

項目名 | 通常の表示| 省略表示
----------------------------------+-----------------+-------------
測定に使用した時間  | 00:00:15.000|
Ethernet フレーム用にデータ補正  | はい|
ダウンロード方向の通信データ量  |369,006,401 Bytes|369.01 MBytes
アップロード方向の通信データ量  |505,070,541 Bytes|505.07 MBytes
合計通信データ量  |874,076,942 Bytes|874.08 MBytes
中継機器入出力合計スループット算出| いいえ|
ダウンロード方向の平均スループット| 196,803,413 bps| 196.80 Mbps
アップロード方向の平均スループット| 269,370,955 bps| 269.37 Mbps
合計平均スループット  | 466,174,368 bps| 466.17 Mbps
コマンドは正常に終了しました。



メインマシン to Realtek RTL8169/8110(ギ蟹)

サーバー 192.168.1.12 (・amp;#124;ート 9821) への接続を開始します。32 本の TCP コネクシ
ンを接続します。
1 本目の TCP コネクションを接続しました。



32 本目の TCP コネクションを接続しました。
データ伝送方向: アップロード (クライアント -> サーバー)

すべてのコネクションが確立されたので、データ送受信を開始しました。
測定開始時刻: 2009年 3月 1日(日) 4時35分24秒
完了予定時刻: 2009年 3月 1日(日) 4時35分39秒

計測中です。しばらくお待ちください。
(測定中は他のアプリケーションを使用しないでください。)

15.0 秒以上が経過したので、データ通信を終了します。

クライアントプログラムが終了しました。


通信スループット測定ツールによる測定結果

項目名 | 通常の表示| 省略表示
----------------------------------+-------------------+-------------
測定に使用した時間 | 00:00:15.000|
Ethernet フレーム用にデータ補正 | はい|
ダウンロード方向の通信データ量 | 977,620,398 Bytes| 0.98 GBytes
アップロード方向の通信データ量 | 305,883,013 Bytes|305.88 MBytes
合計通信データ量 |1,283,503,411 Bytes| 1.28 GBytes
中継機器入出力合計スループット算出| いいえ|
ダウンロード方向の平均スループット| 521,397,545 bps| 521.40 Mbps
アップロード方向の平均スループット| 163,137,606 bps| 163.14 Mbps
合計平均スループット | 684,535,151 bps| 684.54 Mbps
コマンドは正常に終了しました。


この結果を見ると、どうやらギ蟹の方がトップスピードは出る様子。


次に、同じタイミングで3台の別々のマシンからセッションをIntelNICに向けて3倍(94本)張ってみる。


メイン→鯖


通信スループット測定ツールによる測定結果

項目名 | 通常の表示| 省略表示
----------------------------------+-----------------+-------------
測定に使用した時間 | 00:00:15.010|
Ethernet フレーム用にデータ補正 | はい|
ダウンロード方向の通信データ量 |324,639,668 Bytes|324.64 MBytes
アップロード方向の通信データ量 |245,331,635 Bytes|245.33 MBytes
合計通信データ量 |569,971,303 Bytes|569.97 MBytes
中継機器入出力合計スループット算出| いいえ|
ダウンロード方向の平均スループット| 173,025,805 bps| 173.03 Mbps
アップロード方向の平均スループット| 130,756,367 bps| 130.76 Mbps
合計平均スループット | 303,782,172 bps| 303.78 Mbps
コマンドは正常に終了しました。


ML→鯖


通信スループット測定ツールによる測定結果

項目名 | 通常の表示| 省略表示
----------------------------------+-----------------+-------------
測定に使用した時間 | 00:00:15.020|
Ethernet フレーム用にデータ補正 | はい|
ダウンロード方向の通信データ量 | 85,084,555 Bytes| 85.08 MBytes
アップロード方向の通信データ量 |282,165,358 Bytes|282.17 MBytes
合計通信データ量 |367,249,913 Bytes|367.25 MBytes
中継機器入出力合計スループット算出| いいえ|
ダウンロード方向の平均スループット| 45,318,005 bps| 45.32 Mbps
アップロード方向の平均スループット| 150,287,807 bps| 150.29 Mbps
合計平均スループット | 195,605,812 bps| 195.61 Mbps
コマンドは正常に終了しました。



ノート→鯖

通信スループット測定ツールによる測定結果

項目名 | 通常の表示| 省略表示
----------------------------------+----------------+------------
測定に使用した時間 | 00:00:15.000|
Ethernet フレーム用にデータ補正 | はい|
ダウンロード方向の通信データ量 |43,411,296 Bytes|43.41 MBytes
アップロード方向の通信データ量 |34,455,177 Bytes|34.46 MBytes
合計通信データ量 |77,866,473 Bytes|77.87 MBytes
中継機器入出力合計スループット算出| いいえ|
ダウンロード方向の平均スループット| 23,152,691 bps| 23.15 Mbps
アップロード方向の平均スループット| 18,376,094 bps| 18.38 Mbps
合計平均スループット | 41,528,785 bps| 41.53 Mbps
コマンドは正常に終了しました。


何度やっても同じタイミングで始めるとノートだけ異常に速度が出ない。ノートだけなら600とか出るのでノートのNICの問題ではないと思うのだが…


ちなみに、同じタイミングでメインマシン>鯖  ノート>ML で別々に2つの通信をしてハブのテストをしたのだが、このときは双方で600M出ていたので、一応ハブも裁ききれる速度の範囲内だと思う。

そしてバランシング有効化後、メインマシン>鯖の1対1テスト

通信スループット測定ツールによる測定結果

項目名 | 通常の表示| 省略表示
----------------------------------+-------------------+-------------
測定に使用した時間 | 00:00:15.001|
Ethernet フレーム用にデータ補正 | はい|
ダウンロード方向の通信データ量 | 638,066,102 Bytes|638.07 MBytes
アップロード方向の通信データ量 | 667,969,079 Bytes|667.97 MBytes
合計通信データ量 |1,306,035,181 Bytes| 1.31 GBytes
中継機器入出力合計スループット算出| いいえ|
ダウンロード方向の平均スループット| 340,279,235 bps| 340.28 Mbps
アップロード方向の平均スループット| 356,226,427 bps| 356.23 Mbps
合計平均スループット | 696,505,662 bps| 696.51 Mbps
コマンドは正常に終了しました。



若干早くなったように見えるが誤差の範囲でもあるような気がする。

そしてテストでML115>鯖 のテストもしてみる

通信スループット測定ツールによる測定結果

項目名 | 通常の表示| 省略表示
----------------------------------+-------------------+-------------
測定に使用した時間 | 00:00:15.001|
Ethernet フレーム用にデータ補正 | はい|
ダウンロード方向の通信データ量 |1,059,593,942 Bytes| 1.06 GBytes
アップロード方向の通信データ量 | 348,765,077 Bytes|348.77 MBytes
合計通信データ量 |1,408,359,019 Bytes| 1.41 GBytes
中継機器入出力合計スループット算出| いいえ|
ダウンロード方向の平均スループット| 565,079,097 bps| 565.08 Mbps
アップロード方向の平均スループット| 185,995,641 bps| 186.00 Mbps
合計平均スループット | 751,074,738 bps| 751.07 Mbps
コマンドは正常に終了しました。





あれ???????超早くね???
何かのエラーかと思って数回試してみたが大体750~740の範囲に収まっている。

ちなみに同じBroadcomのNICを搭載しているノートで試した結果
項目名 | 通常の表示| 省略表示
----------------------------------+-------------------+-------------
測定に使用した時間 | 00:00:15.000|
Ethernet フレーム用にデータ補正 | はい|
ダウンロード方向の通信データ量 | 768,479,226 Bytes|768.48 MBytes
アップロード方向の通信データ量 | 428,344,946 Bytes|428.34 MBytes
合計通信データ量 |1,196,824,172 Bytes| 1.20 GBytes
中継機器入出力合計スループット算出| いいえ|
ダウンロード方向の平均スループット| 409,855,587 bps| 409.86 Mbps
アップロード方向の平均スループット| 228,450,637 bps| 228.45 Mbps
合計平均スループット | 638,306,224 bps| 638.31 Mbps
コマンドは正常に終了しました。



バランシングを有効化する前のMLのBroadcomNICで680前後だったと記憶している(けど記録してないという)のだが、どうもこの値はおかしいというか早すぎるというか…。

Broadcomがさすがなのかギ蟹が糞なのか…。謎だ。


そして同時94セッションの結果

メイン>鯖
項目名 | 通常の表示| 省略表示
----------------------------------+-----------------+-------------
測定に使用した時間 | 00:00:15.000|
Ethernet フレーム用にデータ補正 | はい|
ダウンロード方向の通信データ量 |586,000,497 Bytes|586.00 MBytes
アップロード方向の通信データ量 |215,225,844 Bytes|215.23 MBytes
合計通信データ量 |801,226,341 Bytes|801.23 MBytes
中継機器入出力合計スループット算出| いいえ|
ダウンロード方向の平均スループット| 312,533,598 bps| 312.53 Mbps
アップロード方向の平均スループット| 114,787,116 bps| 114.79 Mbps
合計平均スループット | 427,320,714 bps| 427.32 Mbps
コマンドは正常に終了しました。



ML>鯖
項目名 | 通常の表示| 省略表示
----------------------------------+-----------------+-------------
測定に使用した時間 | 00:00:15.001|
Ethernet フレーム用にデータ補正 | はい|
ダウンロード方向の通信データ量 |376,305,023 Bytes|376.31 MBytes
アップロード方向の通信データ量 | 69,386,050 Bytes| 69.39 MBytes
合計通信データ量 |445,691,073 Bytes|445.69 MBytes
中継機器入出力合計スループット算出| いいえ|
ダウンロード方向の平均スループット| 200,682,633 bps| 200.68 Mbps
アップロード方向の平均スループット| 37,003,426 bps| 37.00 Mbps
合計平均スループット | 237,686,059 bps| 237.69 Mbps
コマンドは正常に終了しました。

ノート>鯖

項目名 | 通常の表示| 省略表示
----------------------------------+-----------------+-------------
測定に使用した時間 | 00:00:15.000|
Ethernet フレーム用にデータ補正 | はい|
ダウンロード方向の通信データ量 |285,439,463 Bytes|285.44 MBytes
アップロード方向の通信データ量 | 51,173,066 Bytes| 51.17 MBytes
合計通信データ量 |336,612,529 Bytes|336.61 MBytes
中継機器入出力合計スループット算出| いいえ|
ダウンロード方向の平均スループット| 152,234,380 bps| 152.23 Mbps
アップロード方向の平均スループット| 27,292,301 bps| 27.29 Mbps
合計平均スループット | 179,526,681 bps| 179.53 Mbps
コマンドは正常に終了しました。



分かりづらくなってきてしまったのでグラフ化



色々やっていくうちに混乱してきてしまったのでいろいろなところに不備が…。これは後で清書しよう。

 
このグラフがマジなら導入価値は十分あるな
ノート→鯖は除外しても10~20%上がるわけだ

コメントを書く
必要事項とコメントを入力して下さい。









タグの挿入