Table of Contents

1. Purpose of this document

The purpose of this document is to describe the performance of TRex on virtual machines with virtual NICs, and on VF interfaces Test setup and methodology are described, so users can repeat the test.

2. Test setup

All tests were done by connecting two ports in loopback.
For the purpose of the test, TRex server is run with “-c 1” command line option. This makes TRex use one core for TX (in addition to 1 core for RX, and one core for control).

2.1. Setup details

Server:

UCSC-C240-M4SX

CPU:

2 x Intel® Xeon® CPU E5-2667 v3 @ 3.20GHz

RAM:

65536 @ 2133 MHz

OS:

Fedora 18 for all tests, except the X710 which was done on Centos 6. x710/82599 tests where done on bare metal. For other NICs ESXI was used.

Switch:

Cisco Nexus 3172 Chassis, System version: 6.0(2)U5(2).

TRex:

v2.16 with patches for using dpdk 1702 (will get into v2.17)

2.2. Topology

Two ports connected in loopback.

2.3. test commands

Run TRex stateless using: “./t-rex-64 -i -c 1”

In stateless console (“trex-console”) we do the following tests:
var1: start -f stl/bench.py -t size=64,vm=var1 -m <rate> --port 0 --force
cached: start -f stl/bench.py -t size=64,vm=cached -m <rate> --port 0 --force
latency: start -f stl/udp_1pkt_src_ip_split_latency.py -m <rate> --port 0 --force

2.4. Results

2.4.1. Throughput tests

Table 1. 64 bytes with 1 variable field engine
NIC/driver Max PPS at NDR 1 TX core CPU 2 RX core CPU 3 Max possible TX 4

i40evf

10M

85%

75%

11.76

ixgbevf

9M

98%

63%

9.18

vmxnet3

0.9M

17%

1.63%

5.29

virtio

0.28M

5.3%

0.3%

5.28

e1000

0.7M

19.4%

1.45%

3.6

1 Maximum packets per second rate we can send until we see packet drops.
2 TX CPU utilization at this point.
3 RX CPU utilization at this point.
4 Theoretical maximum packets per second with TX core at 100% (extrapolation from 1)
Table 2. 64 bytes with mbuf cache feature
NIC/driver Max PPS at NDR TX core CPU RX core CPU Max possible TX

i40evf

10M

40%

77%

25

ixgbevf

9M

48%

59%

18.75

vmxnet3

0.9M

8%

1.7%

11.25

virtio

0.31M

3.9%

0.35%

7.9

e1000

0.7M

9.4%

1.45%

7.44

2.4.2. Latency test

Table 3. Latency test results
NIC/driver Rate (pps) Average latency (usec) TX core RX core CPU

i40evf

7M

8

28.6%

79%

ixgbevf

8.9M

16

49%

81.5%

vmxnet3

0.9M

80-120 with spikes

8%

2.15%

virtio

0.26M

37-40 with spikes

4%

0.36%

e1000

0.4M

100

7.7%

0.85%