Red Hat Training

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

6.2. vhost-net の無効化

vhost-net モジュールは、virtio ネットワークのカーネルレベルのバックエンドで、ユーザー空間(QEMU プロセス)およびカーネルに 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 が無効化されます。