RHEL5.4のKVMでは仮想マシン(ゲスト)のデフォルトのNICはRealtek rtl8139 がエミュレーションされているのだけれども、それ以外にも選択ができる。それらについて比べてみたところ、ずいぶんと違いが出た。
ホスト、ゲストともにx86_64版RHEL5.4でnetperfを使って測定。なお、肝心のホストのハードウエア情報は残念ながら公開できないが、大きな違いがでたため、ハードウエア環境が違っても参考になると思われる。
選択可能なNICのモデルは rtl8139、e1000、virtio 以外にもあるのだけれんども、今回はこの3つのみで試した。netperfにはホスト以外のオプションは与えていない。まずはKVMのホストからゲストがダウンロードする際の速度。
| NICのモデル | 結果 |
|---|---|
| rtl8139 | 157Mbps |
| e1000 | 463Mbps |
| virtio | 3979Mbps |
今度はその逆。KVMのゲストからホストがダウンロードする際のパフォーマンス。
| NICのモデル | 結果 |
|---|---|
| rtl8139 | 15Mbps |
| e1000 | 1352Mbps |
| virtio | 3101Mbps |
ゲストとゲスト同士というのは値を控えていないのだけれど、これもvirtioのパフォーマンスが高く、rtl8139は極端に低い値となった。これ以外にKVMゲストと外部ホストとのパフォーマンスなども気になるところだが、それはまた機会があれば試したい。
ゲストのNICを変更するのはGUIのvirt-manager のほかに virsh でもできる。
# virsh edit GUEST
のように実行するとゲストの設定を編集できる。デフォルトのrtl8139が使われている状態では特にモデルは指定されていないので、 <interface type='network'> から </interface> の間に次のようなNICのモデルを挿入すればOK。
<model type='virtio' />
ナレッジベースにもあるように、 virt-install 時に --os-variant=virtio26 オプションを指定すれば最初からvirtioが使えるようになるので 、ゲストが対応しているのであればこのオプション付きでインストールしたほうがよいかもしれない。
NICのほかにディスクでもvirtioがつかえるのだけれんども、私の環境ではちがいはわからななかった。測定方法の問題かもしれない。
- Posted at 2009-09-30 17:05:54
- software
このエントリへのトラックバック
spamが増えたためトラックバック機能は停止中です。
このエントリへのコメント
spamが増えたためコメント機能は停止中です。