31.13. KVM ネットワーキングパフォーマンス
デフォルトで、KVM 仮想マシンは仮想 Realtek 8139 (rtl8139) NIC (network interface controller) に 割り当てられています。
rtl8139 仮想化 NIC は ほとんどの環境で正常に機能します。しかし、このデバイスは 一部のネットワーク上(例えば、10 Gigabit Ethernet ネットワーク)でパフォーマンス 劣化問題を被る可能性があります。
回避策としては、仮想化 NIC の異なるタイプに切り替えることです。例えば、 Intel PRO/1000 (e1000) や、あるいは、virtio(para-virtualized ネットワークドライバー)。
e1000 ドライバーに切り替えるには:
- ゲストオペレーティングシステムをシャットダウンします。
- ゲストの設定ファイルを
virsh
コマンドで編集します。 (ここで、GUEST
とはゲスト名です):# virsh edit
GUEST
virsh edit
コマンドは$EDITOR
シェル変数を使用して使用するエディタを決定します。 - 設定内でネットワークインターフェイスセクションを見つけます。このセクションは、 以下の snippet に似ています:
<interface type='network'> [output truncated] <model type='rtl8139' /> </interface>
- モデルエレメントのタイプ属性を
'tl8139'
から'e1000'
へ変更します。これが rtl8139 ドライバーから e1000 ドライバーへとドライバーを変換します。<interface type='network'> [output truncated] <model type=
'e1000'
/> </interface> - 変更を保存してテキストエディタを終了します。
- ゲストオペレーティングシステムを再スタートします。
別の方法では、異なるネットワークドライバーを使用して、新しい仮想化ゲストを インストールする方法があります。ネットワーク接続でゲストのインストールが 難しい場合に、この方法が必要になるかも知れません。この方法では、ユーザーが 既に作成済の仮想化マシンを少なくとも1つ持っていて(多分、CD か DVD でインストール済み) それをテンプレートとして使用することが要求されます。
- 既存の仮想マシンから XML テンプレートを作成します:
# virsh dumpxml GUEST > /tmp/guest.xml
- XML ファイルをコピーして編集により、特有のフィールドを更新します: 仮想マシン名、 UUID、ディスクイメージ、MAC アドレス、他の特有なパラメータ。UUID と MAC アドレスの 行を削除すると、virsh が UUID と MAC アドレスを生成します。
# cp /tmp/guest.xml /tmp/new-guest.xml # vi /tmp/new-guest.xml
ネットワークインターフェイスセクションにモデルの行を追加します:<interface type='network'> [output truncated] <model type='e1000' /> </interface>
- 新しい仮想マシンを作成します:
# virsh define /tmp/new-guest.xml # virsh start new-guest
e1000 or virtio ドライバーを使用した方がネットワークパフォーマンスは良くなります。 (BZ#517181)