aboutsummaryrefslogtreecommitdiffstats
path: root/test/perf/iperf.md
blob: 97c5442ab08610866a3accc85570ccd1bc181172 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
# 1.  Description
**Test description:**
Measure the bandwith required to run kernel stack with DMM and without DMM using IPERF tool.

**Date:** Thursday, 17. January 2019 03:57PM 

**Test Environment:**
Physical Machines: 172.16.101.1 and 172.16.103.1
Operating System: Ubuntu 16.04 LTS

Virtual Machines:172.28.128.4 and 172.28.128.6
Operating System: Ubuntu 16.04 LTS

**Test App:**
Iperf : iPerf3 is a tool for active measurements of the maximum achievable bandwidth on IP networks. It supports tuning of various parameters related to timing, buffers and protocols (TCP, UDP, SCTP with IPv4 and IPv6). For each test it reports the bandwidth, loss, and other parameters.

# 2. Topology Diagram
![test_topology.png](resources/test_topology.png
"test_topology.png")

**Physical Machines:**
Server-------------------------Client
connected via 82599ES 10-Gigabit SFI/SFP+ Network Connection

**Virtual Machines:**
Server-------------------------Client
connected via 82540EM Gigabit Ethernet Controller
# 3. Test Commands
**Server Command with DMM:**
```
$sudo LD_LIBRARY_PATH=/home/root1/dmm/thirdparty/apps/iperf-3.1.3/src/.libs/ LD_PRELOAD=/home/root1/dmm/thirdparty/apps/iperf-3.1.3/src/.libs/libnStackAPI.so ./iperf3 -s -B 172.28.128.3 -4
```

**Client Command with DMM:**
```
$sudo LD_LIBRARY_PATH=/home/root1/dmm/thirdparty/apps/iperf-3.1.3/src/.libs/ LD_PRELOAD=/home/root1/dmm/thirdparty/apps/iperf-3.1.3/src/.libs/libnStackAPI.so ./iperf3 -c 172.18.128.3 -B 172.28.128.5 -4
```

**Server Command without DMM:**
```
$sudo ./iperf3 -s -B 172.28.128.3 -4
```

**Client Command without DMM:**
```
$sudo ./iperf3 -c 172.18.128.3 -B 172.28.128.5 -4
```

#4. Commit version
```
commit fa0dce9d94e9bfbdd9ec877036a101d2fd69f42c
Merge: b5f1d4b f35c043
Author: yalei wang <wylandrea@gmail.com>
Date:   Mon Dec 3 12:46:58 2018 +0000

    Merge "Fix: removing unwanted json elements"
```
```
Download source code: git clone https://gerrit.fd.io/r/dmm
```
#5. Result

**Physical Machines:**
**DMM+Kernel:**

**Server:**

| ID | Interval | Transfer  |  Bandwidth | sender/receiver |
| -- | -------- | --------- | ------------ | ----------------- |
| 18 | 0.00-10.04  sec | 0.00 Bytes | 0.00 bits/sec | sender |
| 18 | 0.00-10.04  sec | 11.0 GBytes | 9.38 Gbits/sec | receiver |

**Client:**

| ID | Interval | Transfer  |  Bandwidth | Retr | sender/receiver |
| -- | -------- | --------- | ------------ | ------| ---------------- |
| 17 |  0.00-10.00  sec | 11.0 GBytes | 9.41 Gbits/sec  | 14 | sender |
| 17 |   0.00-10.00  sec | 11.0 GBytes | 9.41 Gbits/sec |  | receiver |

**Kernel:**

**Server:**

| ID | Interval | Transfer  |  Bandwidth | sender/receiver |
| -- | -------- | --------- | ------------ | ----------------- |
| 5 |  0.00-10.04  sec  | 0.00 Bytes | 0.00 bits/sec | sender |
| 5 |  0.00-10.04  sec | 11.0 GBytes | 9.38 Gbits/sec | receiver |

**Client:**

| ID | Interval | Transfer  |  Bandwidth | Retr | sender/receiver |
| -- | -------- | --------- | ------------ | ------| ---------------- |
|  4 |   0.00-10.00  sec | 11.0 GBytes | 9.42 Gbits/sec |  15  |  sender |
|  4 |   0.00-10.00  sec | 11.0 GBytes | 9.41 Gbits/sec       |         | receiver |

**Virtual Machines:**
**DMM+Kernel:**

**Server:**

| ID | Interval | Transfer  |  Bandwidth | sender/receiver |
| -- | -------- | --------- | ------------ | ----------------- |
| 18 | 0.00-10.04  sec | 0.00 Bytes | 0.00 bits/sec | sender |
| 18 | 0.00-10.04  sec | 2.94 GBytes | 2.51 Gbits/sec | receiver |

**Client:**

| ID | Interval | Transfer  |  Bandwidth | Retr | sender/receiver |
| -- | -------- | --------- | ------------ | ------| ---------------- |
| 17 |  0.00-10.00  sec | 2.94 GBytes | 2.52 Gbits/sec  | 22634 | sender |
| 17 |   0.00-10.00  sec | 2.94 GBytes | 2.52 Gbits/sec |  | receiver |

**Kernel:**

**Server:**

| ID | Interval | Transfer  |  Bandwidth | sender/receiver |
| -- | -------- | --------- | ------------ | ----------------- |
| 5 |  0.00-10.04  sec  | 0.00 Bytes | 0.00 bits/sec | sender |
| 5 |  0.00-10.04  sec | 2.87 GBytes | 2.46 Gbits/sec | receiver |

**Client:**

| ID | Interval | Transfer  |  Bandwidth | Retr | sender/receiver |
| -- | -------- | --------- | ------------ | ------| ---------------- |
|  4 |   0.00-10.00  sec | 2.87 GBytes | 2.47 Gbits/sec |  21104  |  sender |
|  4 |   0.00-10.00  sec | 2.87 GBytes | 2.47 Gbits/sec       |         | receiver |

#7. Conclusion
**Physical Machines:**
The bandwidth while running iperf with kernel and DMM is 9.41 Gbits/sec at both sender and receiver and while running iperf with kernel alone is 9.42 Gbits/sec at sender and 9.41 Gbits/sec at receiver. 

**Virtual Machines:**
The bandwidth while running iperf with kernel and DMM is 2.52 Gbits/sec at both sender and receiver and while running iperf with kernel alone is 2.47 Gbits/sec at both sender and receiver.

These are the benchmark values for further tests.