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