KVM Local Network VMs TCP Congestion Algorithm on CentOS 6.5
First off I have no idea what made me want to test this…likely because it was easy to script and let run a few times while I went off and did other things.
What I am doing is testing network bandwidth between two KVM VMs on a single system using a bridge, the virtio network driver, and CentOS 6.5 as the Client and Host OS.
A little info on how to reproduce this. To find what your system supports you run
ls /lib/modules/`uname -r`/kernel/net/ipv4/
and look for tcp_* to see what to populate in the script….
Then take 30 seconds to write a little for loop(s) with these ….
#!/bin/bash
LOG=$LOG_PATH
#Clear Log....
echo "" > $LOG
for i in cubic bic highspeed htcp hybla illinois lp scalable vegas veno westwood yeah; do
for s in {1..10}; do
echo "Testing with : $i" >> $LOG
echo "Run $s" >> $LOG
iperf -Z $i -c sec01 >> $LOG
done
done
Results are all in Mbps and are based off 20 total runs almost back to back. These are VERY inconclusive but at least warrants more testing.
UPDATE – I am doing more testing and found that the longer run times (120 seconds vs 10) is showing MUCH more consistent numbers.
It appears that vegas and Yeah dont like the way these local bridged networks handle cwnd’s and ssthresh among other things.
It also might be worth further testing to see how/if these affect RTT among other network variables.