9.4. 受信/送信キューサイズの設定
以下に示す理由により、3.5 百万パケット毎秒 (mpps) を超える高いパケットレートでは、パケットロスが生じる場合があります。
- ネットワークの中断
- SMI
- 仮想ネットワーク機能におけるパケット処理のレイテンシー
パケットロスを防ぐには、キューサイズをデフォルトの 512 から最大の 1024 に増やします。
前提条件
- 受信キューサイズを設定するには、libvirt v2.3 および QEMU v2.7 が必要です。
- 送信キューサイズを設定するには、libvirt v3.7 および QEMU v2.10 が必要です。
手順
受信および送信キューサイズを増やすには、該当する director ロールの
parameter_defaults:
セクションに以下の行を追加します。ComputeOvsDpdk ロールにおける例を以下に示します。parameter_defaults: ComputeOvsDpdkParameters: -NovaLibvirtRxQueueSize: 1024 -NovaLibvirtTxQueueSize: 1024
テスト
nova.conf ファイルで、受信キューサイズおよび送信キューサイズの値を確認することができます。
[libvirt] rx_queue_size=1024 tx_queue_size=1024
コンピュートホストの libvirt により生成された仮想マシンインスタンスの XML ファイルで、受信キューサイズおよび送信キューサイズの値を確認することができます。
<devices> <interface type='vhostuser'> <mac address='56:48:4f:4d:5e:6f'/> <source type='unix' path='/tmp/vhost-user1' mode='server'/> <model type='virtio'/> <driver name='vhost' rx_queue_size='1024' tx_queue_size='1024' /> <address type='pci' domain='0x0000' bus='0x00' slot='0x10' function='0x0'/> </interface> </devices>
受信キューサイズおよび送信キューサイズの値を検証するには、KVM ホストで以下のコマンドを使用します。
$ virsh dumpxml <vm name> | grep queue_size
- パフォーマンスの向上を確認することができます (例: 3.8 mpps/コアのレートでフレーム損失なし)。