Netperf Benchmarks
The test compare three different guest OS:
- Out of the box (OOTB) Linux
- Linux with a disabled Firewall
- OSv
Test goal is comparing OS guests ‘as is’. No tuning is done on either Linux or OSv for this particular test . Since OSv does not comes with a default firewall, Linux with a disabled firewall is included to level the play field.
Latest Benchmark
- Test Date: May 7, 2014
- OSv version: 0.08, commit f0cd44336ad0f8d8
- Linux version: Fedora release 20 (Heisenbug), 3.12.5-302.fc20.x86_64
- HW: two identical servers, one for the test (guest) OS, one to send/receive traffic
- Each server: 8 x Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz, 16GB RAM
Results
| Test | iperf 1s | iperf 4s | iperf 16s | netperf STREAM | netperf MAERTS | netperf TCP RR | netperf UDP RR | 
|---|---|---|---|---|---|---|---|
| Gbps | Gbps | Gbps | Mbps | Mbps | T/s | ||
| Linux Firewall disabled - 1vcpu | 53.00 | 31.90 | 35.30 | 44,546 | 33,833 | 45,976 | 45,467 | 
| OSv 1vcpu | 55.30 | 47.90 | 44.60 | 55,466 | 37,261 | 74,862 | 80,533 | 
| OSv relative results | 104% | 150% | 126% | 125% | 110% | 163% | 177% | 
| Linux Firewall disabled - 4vcpu | 41.6 | 43.4 | 39.2 | 40,149 | 35,128 | 45,092 | 44,700 | 
| OSv 4vcpu | 52.2 | 43.2 | 36.6 | 49,611 | 36,255 | 68,032 | 72,461 | 
| OSv relative results | 125% | 99% | 93% | 123% | 103% | 151% | 162% | 
All Benchmarks
Test Bed
- 
    All tests runs for 30 sec 
- 
    Results present the average across 5 runs 
- 
    For tests TCP_STREAM, TCP_MAERTS, UDP_STREAM, TCP_RR, UDP_RR: netserver is running on the tested (guest) OS 
 netperf is running on a different server
- 
    For UDP Tx, netperf is running in the tested OS 
Disable the Linux firewall
- Open ports 12865 and 12866 for netperf in the Linux firewall
    firewall-cmd --permanent --add-port=12866/udp  
    firewall-cmd --permanent --add-port=12866/tcp  
    firewall-cmd --permanent --add-port=12865/tcp  
    systemctl restart firewalld.service  - Stop FW (firewall) on the Linux Guest
    systemctl stop firewalld.service  - Check the status of the FW:
    firewall-cmd --state- Check the FW rules:
    firewall-cmd --list-allRunning a netserver
- For Linux (run in the Guest shell)
    netserver  - For OSv (run in the host shell):
    sudo ./scripts/run.py -n -v -e "/tools/netserver.so -D -4 -f" -c <number of vCPUs, e.g. 4>  - For UDP Tx, run on the host:
    netserver  Running a netperf
- Run a netperf on a host, For both Linux and OSv
    netperf -H <IP netserver is listening on, e.g. 192.168.122.89> -t <test name, e.g. TCP_MAERTS> -l 30 -- -P 12866  - For UDP Tx, running UDP_STREAM from the Guest
- For Linux (run in the Guest shell)
    netperf -H <IP netserver is listening on, e.g. 192.168.122.1> -t UDP_STREAM -l 30 -- -P 12866 -m 1400  - For OSv (run in the host shell):
    sudo ./scripts/run.py -n -v -e "/tools/netperf.so -H <IP netserver is listening on, e.g. 192.168.122.1> -t UDP_STREAM -l 30 -- -P 12866 -m 1400" -c <number of vCPUs, e.g. 4> 
  
        

