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
| NIC/driver | Max PPS at NDR |
TX core CPU |
RX core CPU |
Max possible TX |
|---|---|---|---|---|
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 |
| Maximum packets per second rate we can send until we see packet drops. | |
| TX CPU utilization at this point. | |
| RX CPU utilization at this point. | |
| Theoretical maximum packets per second with TX core at 100% (extrapolation from 1) |
| 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
| 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% |
Table of Contents