I.1 KVM/OpenStack

For the DSR system to achieve 50K MPS or more through IPFE, a few tuning parameters need to be changed.

txqueuelen

Tuned on the compute hosts.

Purpose: The default value of 500 is too small. Our recommendation is to set to 30000. Increases the network throughput of a VM.
On each compute host, do the following as root.
# cat > /etc/udev/rules.d/60-tap.rules << EOFKERNEL=="tap*", RUN+="/sbin/ip link set %k txqueuelen 30000"EOF
Reload and apply to the running system.
# udevadm control --reload-rules
# udevadm trigger --attr-match=subsystem=net

Ring buffer increase on the physical ethernet interfaces

Tuned on the compute hosts.

Purpose: Improves the overall network throughput of the host.

This varies depending on the Host OS. The following steps are applicable to centos or fedora or rhel.

Add the following line into the network script of the interface you want to change.

For example: To change the ring buffer on the eth2 interface, edit /etc/sysconfig/network-scripts/ifcfg-eth2 to add the ETHTOOL_OPTS= line as shown.
DEVICE=eth2
TYPE=Ethernet
ETHTOOL_OPTS="--set-ring eth2 rx 4096 tx 4096"
Restart the network using service network restart as root. Check the setting using ethtool -g eth2.

Multiqueue [on IPFE]

To be enabled on the OpenStack flavor and glance image for IPFE instance.

Purpose: Improves the network throughput of a VM.

You need to update the flavor and the image to enable multiqueue. All guests using that image will be created with multiqueue.
# openstack flavor set m1.large --property hw:vif_multiqueue_enabled=true
# glance image-update b5592ed4-8f41-48a9-9f0c-e0e46cb3dd6c --property hw_vif_multiqueue_enabled=true

On the Guest set the number of queues to number of vcpus.

Add the following line into the network script of the interface you want to change.

For example: To set the number of queues to number of vcpus.

Edit /etc/sysconfig/network-scripts/ifcfg-eth_interface to set the multiqueue value to the number of vCPUs:
DEVICE=eth
TYPE=Ethernet
ETHTOOL_OPTS="-L ${DEVICE} combined <no_of_vCPUs>

Restart the network using service network restart as root.

Check the setting using ethtool -l <eth_interface>.