virtualization
- netperf benchmark of the FreeBSD VirtIO Net on VirtualBox
前回までの説明で、
VirtualBoxで準仮想化ネットワーク(virtio-net)の機能を有効にする方法、 FreeBSD 10-CURRENTゲストで準仮想化ネットワーク(if_ vtnet(4))を利用する方法を紹介しました。構築したネットワークがそれぞれ性能にどのような違いをもたらしているのかを、 netperf (benchmarks/ netperf)を使って計測した結果を紹介します。 比較はFreeBSD AからFreeBSD Bへのnetperf実行にて実施しました。どちらも10-CURRENTです。FreeBSD AではVirtualBox 4.
1.6が動作しており、 そこでVirtIOを有効していないFreeBSD 10-CURRENTと、 VirtIOを有効にしたFreeBSD 10-CURRENTをゲストOSとして実行させています。この状態で次の3つの経路をnetperfにて計測しました。 - FreeBSD A - FreeBSD B
- FreeBSD on VirtualBox on FreeBSD A - FreeBSD B
- FreeBSD(vtnet) on VirtualBox(virtio-net) on FreeBSD A - FreeBSD B
netperfが示したスループットの平均値は次のとおりです。今回のケースではVirtIOを使った場合の性能がネイティブな性能に匹敵するレベルまで高速化されていることを確認できます。もちろんこの結果は利用するLANの帯域やPCの性能によって変化します。あくまでもひとつの目安と見てください。
表 netperf性能比較結果 スループット[Mbps] FreeBSDホスト 934 FreeBSDゲスト on VBox + VirtIO-Net 851 FreeBSDゲスト on VBox 45 それぞれ10回計測した結果の平均値を記載してあります。FreeBSD AからFreeBSD Bへの計測では、
計測結果にほとんどブレがなく、 毎回ほとんど同じ値を示しました。一方、 仮想環境からの計測はブレが大きくでました。特にフルエミュレーションのEthernetドライバの場合は大きなブレが観測されました。VirtIOを経由した場合にはブレが小さくなりましたが、 ホストから通信している場合に比べるとそれでも大きなブレ幅でした。 これまで、
こうしたタイプの仮想環境で動作するFreeBSDはネットワーク性能が低いと指摘されることがありましたが、 今回のVirtIOの取り込みは、 こうした要望に応えるものとなります。単純な比較ですが大幅に性能が向上していることが確認できます。今回の例ではだいたい19倍の高速化を確認できたことになります。