昨日のネットワーク負荷の実験で、
http://d.hatena.ne.jp/ichikaway/20080918/1221733088
ファイルのREAD問題があってということを書いたが、kanatokoさんからddでデータを生成してそれをncにパイプで渡せヴぁ?というアドバイスをもらった。
確かにそれならDisk I/Oが発生しないので、単純なネットワーク負荷のテストが出来るはず。ということで再度テストしてみた。
計測は、ncコマンドを用い、VMゲストOSから一方的に2Gのデータを送信する、受信する場合をそれぞれ計測した。
データ受信側: nc -l 1234 > /dev/null データ送信側: time dd if=/dev/zero bs=1024 count=2000000 | nc 192.168.222.1 1234
下記がその結果。
まずはVMware Serverの場合。
■VMware ServerのVM guest → Linux単体サーバ 2Gファイル転送 転送速度:20 MB/s(160Mbps) CPU0 : User+System=25% CPU1 : User+System=97% ロードアベレージMax 1.38 ■Linux単体サーバ → VMware ServerのVM guest 2Gファイル受信 転送速度:32 MB/s(256Mbps) CPU0 : User+System=0% CPU1 : User+System=99% ただし、受信後半から、cpu0が60%ぐらい利用される。cpu1は常に90%台 ロードアベレージMax 0.75
次に、ESXiの場合
■ESXiのVM guest → Linux単体サーバ 2Gファイル転送 転送速度:25 MB/s(200Mbps) CPU0 : User+System=20% CPU1 : User+System=99% ロードアベレージMax 1 ■Linux単体サーバ → ESXiのVM guest 2Gファイル受信 転送速度:45 MB/s(360Mbps) CPU0 : User+System=0% CPU1 : User+System=99% ロードアベレージMax 0.5
考察
ゲストOSからのファイルの送信に関しては、転送速度、CPU負荷で大きな差は見られない。ファイルの受信の場合、ESXiの方がVMwareServerに比べて100Mbps程度受信速度が速い。
VMwaerServer, ESXi共にゲストOSのデータ受信の方が、データ送信よりもパフォーマンスが良い。これは送信側がVMを動かしていないLinux単体サーバなので、そちらのddのデータ作成速度が良いためだと思う。(VMゲスト側でddをしていると、CPU負荷+VM負荷となりddのデータ作成速度が落ちる)
インターネット上のサーバで、帯域100Mbpsぐらいの環境であれば、ネットワーク転送にかかるCPU負荷もほとんど変わらないと思う(というかシェイプして計測しろよという話だけど)
やはりESXiとVMwareServerの大きな違いは、Disk I/Oの速度だろうな。特にVMwareServerのREADパフォーマンス問題が気になって仕方がない。
使い勝手でいくと、やっぱりVMwareServerの方が単純なファイルなのでホストOSからの制御がしやすい。ESXiは管理ツールが優れているけど、物理レイヤーの制御で痒いところに手が届かなかったりする。
それとESXi自体のサーバリブートとかリモートからできるんだっけ?ちょっとそこら辺も調べないと。