Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

11.2. vhost-net の無効化

vhost-net モジュールは virtio ネットワーク用のカーネルレベルのバックエンドで、ユーザー空間(qemu プロセス)およびカーネル(vhost-net ドライバー)から virtio パケット処理タスクをカーネル( vhost-net ドライバー)に移動することで、仮想化のオーバーヘッドを軽減します。vhost-net は virtio ネットワークインターフェイスでのみ利用できます。vhost-net カーネルモジュールがロードされている場合は、すべての virtio インターフェイスに対してデフォルトで有効になっていますが、vhost-net の使用時に特定のワークロードでパフォーマンスが低下する場合は、インターフェイス設定で無効にできます。
具体的には、UDP トラフィックがホストマシンからそのホスト上のゲスト仮想マシンに送信される場合、ゲスト仮想マシンが受信データをホストマシンが送信する速度よりも遅い速度で処理すると、パフォーマンスが低下する可能性があります。この場合は、vhost-net を有効にすると、UDP ソケットの受信バッファーがより速くオーバーフローし、パケットロスが大きくなります。そのため、このような状況では vhost-net を無効にしてトラフィックを遅くし、全体的なパフォーマンスを向上させることが推奨されます。
vhost-net を無効にするには、ゲスト仮想マシンの XML 設定ファイルの <interface> サブ要素を変更し、次のようにネットワークを定義します。
<interface type="network">
   ...
   <model type="virtio"/>
   <driver name="qemu"/>
   ...
</interface>
ドライバー名を qemu に設定すると、パケット処理が qemu ユーザー空間に強制され、そのインターフェイスの vhost-net を効果的に無効にします。