20.16.9.10. NIC ドライバー固有のオプションの設定
NIC によっては、調整可能なドライバー固有のオプションが含まれる場合があります。このオプションは、インターフェイス定義の
driver
サブ要素の属性として設定されます。このようなオプションは、管理ツールを使用して設定し、ドメイン XML の以下のセクションを設定します。
図20.47 デバイス - ネットワークインターフェイス - NIC ドライバー固有のオプションの設定
<devices> <interface type='network'> <source network='default'/> <target dev='vnet1'/> <model type='virtio'/> <driver name='vhost' txmode='iothread' ioeventfd='on' event_idx='off'/> </interface> </devices> ...
現在、virtio の NIC ドライバーでは、以下の属性を使用できます。
パラメーター | 説明 |
---|---|
name | オプションの name 属性では、使用するバックエンドドライバーの種類が強制されます。値は、qemu (ユーザー空間のバックエンド) または vhost (カーネルにより vhost モジュールが提供されることが必要なカーネルバックエンド) のいずれかになります。カーネルサポートのない vhost ドライバーを要求しようとする場合は拒否されます。デフォルト設定は、vhost ドライバーが存在する場合は vhost になりますが、存在しない場合は警告なしに qemu に戻ります。 |
txmode | 送信バッファーが満杯になった場合にパケットの送信を処理する方法を指定します。値は、iothread または timer のいずれかになります。iothread に設定すると、パケット tx はドライバーの下半分の iothread ですべて実行されます (このオプションは、qemu コマンドラインの "-device" virtio-net-pci オプションに "tx=bh" を追加することに変換されます)。timer に設定すると、qemu で tx 処理が行われます。現在送信可能な tx データよりも多くの tx データが存在する場合は、qemu が他の処理を行うために移動する前にタイマーが設定されます。タイマーが実行されると、さらなるデータを送信するために別の試みが行われます。一般に、このオプションを変更することが絶対に必要であると確信している場合を除いて、このオプションはそのままにしておく必要があります。 |
ioeventfd | ユーザーがインターフェイスデバイスのドメイン I/O 非同期処理を設定できるようにします。デフォルトは、ハイパーバイザーの判断に任されます。許可される値は on と off です。このオプションを有効にすると、qemu は、別のスレッドが I/O を処理している間にゲスト仮想マシンを実行できます。通常、I/O の実行中にシステム CPU の使用率が高くなったゲスト仮想マシンは、この恩恵を受けます。一方、物理ホストマシンのオーバーロードは、ゲスト仮想マシンの I/O レイテンシーを増加させる可能性もあります。したがって、このオプションを変更することが絶対に必要であると確信している場合を除いて、このオプションはそのままにしておく必要があります。 |
event_idx | event_idx 属性は、デバイスイベント処理の一部の側面を制御します。値は on または off のいずれかになります。on を選択すると、ゲスト仮想マシンの割り込みと終了の数が減ります。デフォルトは on です。この動作が最適ではない状況がある場合、この属性は機能を強制的にオフにする方法を提供します。変更が絶対に必要であると確信している場合を除いて、このオプションはそのままにしておく必要があります。 |