Skip to content

Turbo on Cloud

VM instance type/size

Cloud VMs need to be sized depending on the maximum packet rate (packets per sec: pps) that you need to generate. The max packet rate depends upon the desired max bit rate and the smallest packet size you want to use for the test(s).

MaxPps = MaxBitRate/8/(MinPacketSize+20)

Here's a table for 10Gbps against various packet sizes based on the above calculation -

Packet Size Max BW Max Pps
64 10Gbps 14,880,952
128 10Gbps 8,445,946
256 10Gbps 4,528,986
IMIX 10Gbps 3,272,251
512 10Gbps 2,349,624
1024 10Gbps 1,197,318
1518 10Gbps 812,744

Use the table (or formula) above to determine the desired max pps.

No of CPU cores

Cloud VMs typically have a Turbo performance of around 1Mpps (1 million packets/sec) per non-HT vCPU core.

Derive the number of vCPU cores required as follows -

CoreCount = 1+RoundUp(MaxPps/1,000,000)

RAM

A minimum VM RAM of 2GB is typically sufficient.

Bandwidth

Cloud providers impose an aggregate bandwidth policer across all interfaces of the VM instance. Different instance types/sizes have different supported bandwidth.

Select a cloud VM instance type/size as per the required number of cores, RAM and bandwidth.

Firewall

You will run the Ostinato Turbo-Drone agent on the VM and control it via the GUI running on your laptop. To do so, you need to configure the cloud VM firewall to allow incoming TCP port 7878.

If you don't want to open the port, you can use ssh-tunneling between the Ostinato GUI and the Turbo-Drone agent.

Azure

To run turbo-drone on an Azure VM -

sudo ethtool -K eth0 lro off
sudo SKIP_IRQ=1 turbo-tune <port list>
sudo osc_ssc=1 turbo-drone

AWS

Double the cores!

Due to the design of the Amazon ena driver only half the number of CPU cores can be used for AF_XDP (the acceleration technology used by Turbo), so you need double the number of cores - review your EC2 instance choice based on this.

To run turbo-drone on an AWS VM -

sudo ip link set dev <port> mtu 3498
sudo turbo-drone
Back to top