summaryrefslogtreecommitdiffstats
path: root/doc/book-enea-nfv-access-platform-guide/doc/benchmarks.xml
diff options
context:
space:
mode:
Diffstat (limited to 'doc/book-enea-nfv-access-platform-guide/doc/benchmarks.xml')
-rw-r--r--doc/book-enea-nfv-access-platform-guide/doc/benchmarks.xml249
1 files changed, 231 insertions, 18 deletions
diff --git a/doc/book-enea-nfv-access-platform-guide/doc/benchmarks.xml b/doc/book-enea-nfv-access-platform-guide/doc/benchmarks.xml
index 7155e44..fa461fa 100644
--- a/doc/book-enea-nfv-access-platform-guide/doc/benchmarks.xml
+++ b/doc/book-enea-nfv-access-platform-guide/doc/benchmarks.xml
@@ -4,18 +4,231 @@
4<chapter id="benchmarks"> 4<chapter id="benchmarks">
5 <title>Benchmarks</title> 5 <title>Benchmarks</title>
6 6
7 <para></para>
8
9 <section id="hw-setup"> 7 <section id="hw-setup">
10 <title>Hardware Setup</title> 8 <title>Hardware Setup</title>
11 9
12 <para></para> 10 <para>The following table describes all the needed prequisites for an apt
11 hardware setup:</para>
12
13 <table>
14 <title>Hardware Setup</title>
15
16 <tgroup cols="2">
17 <colspec align="left" />
18
19 <thead>
20 <row>
21 <entry align="center">Item</entry>
22
23 <entry align="center">Description</entry>
24 </row>
25 </thead>
26
27 <tbody>
28 <row>
29 <entry align="left">Server Platform</entry>
30
31 <entry align="left">Supermicro X10SDV-4C-TLN2F
32 http://www.supermicro.com/products/motherboard/xeon/d/X10SDV-4C-TLN2F.cfm</entry>
33 </row>
34
35 <row>
36 <entry align="left">ARCH</entry>
37
38 <entry>x86-64</entry>
39 </row>
40
41 <row>
42 <entry align="left">Processor</entry>
43
44 <entry>1 x Intel Xeon D-1521 (Broadwell), 4 cores, 8
45 hyper-threaded cores per processor</entry>
46 </row>
47
48 <row>
49 <entry align="left">CPU freq</entry>
50
51 <entry>2.40 GHz</entry>
52 </row>
53
54 <row>
55 <entry align="left">RAM</entry>
56
57 <entry>16GB</entry>
58 </row>
59
60 <row>
61 <entry align="left">Network</entry>
62
63 <entry>Dual integrated 10G ports</entry>
64 </row>
65
66 <row>
67 <entry align="left">Storage</entry>
68
69 <entry>Samsung 850 Pro 128GB SSD</entry>
70 </row>
71 </tbody>
72 </tgroup>
73 </table>
74
75 <para>Generic tests configuration:</para>
76
77 <itemizedlist>
78 <listitem>
79 <para>All tests use one port, one core and one Rx/TX queue for fast
80 path traffic.</para>
81 </listitem>
82 </itemizedlist>
13 </section> 83 </section>
14 84
15 <section id="bios"> 85 <section id="bios">
16 <title>Bios</title> 86 <title>BIOS Settings</title>
87
88 <para>The table below details the BIOS settings for which the default
89 values were changed when doing performance measurements.</para>
90
91 <table>
92 <title>BIOS Settings</title>
93
94 <tgroup cols="4">
95 <colspec align="left" />
96
97 <thead>
98 <row>
99 <entry align="center">Menu Path</entry>
100
101 <entry align="center">Setting Name</entry>
102
103 <entry align="center">Enea NFV Access value</entry>
104
105 <entry align="center">BIOS Default value</entry>
106 </row>
107 </thead>
108
109 <tbody>
110 <row>
111 <entry align="left">CPU Configuration</entry>
112
113 <entry align="left">Direct Cache Access (DCA)</entry>
114
115 <entry>Enable</entry>
116
117 <entry>Auto</entry>
118 </row>
119
120 <row>
121 <entry>CPU Configuration / Advanced Power Management
122 Configuration</entry>
123
124 <entry align="left">EIST (P-States)</entry>
125
126 <entry>Disable</entry>
127
128 <entry>Enable</entry>
129 </row>
130
131 <row>
132 <entry>CPU Configuration / Advanced Power Management Configuration
133 / CPU C State Control</entry>
134
135 <entry align="left">CPU C State</entry>
136
137 <entry>Disable</entry>
138
139 <entry>Enable</entry>
140 </row>
141
142 <row>
143 <entry>CPU Configuration / Advanced Power Management Configuration
144 / CPU Advanced PM Turning / Energy Perf BIAS</entry>
145
146 <entry align="left">Energy Performance Tuning</entry>
147
148 <entry>Disable</entry>
149
150 <entry>Enable</entry>
151 </row>
152
153 <row>
154 <entry>CPU Configuration / Advanced Power Management Configuration
155 / CPU Advanced PM Turning / Energy Perf BIAS</entry>
156
157 <entry align="left">Energy Performance BIAS Setting</entry>
158
159 <entry>Performance</entry>
160
161 <entry>Balanced Performance</entry>
162 </row>
163
164 <row>
165 <entry>CPU Configuration / Advanced Power Management Configuration
166 / CPU Advanced PM Turning / Energy Perf BIAS</entry>
167
168 <entry align="left">Power/Performance Switch</entry>
169
170 <entry>Disable</entry>
171
172 <entry>Enable</entry>
173 </row>
174
175 <row>
176 <entry>CPU Configuration / Advanced Power Management Configuration
177 / CPU Advanced PM Turning / Program PowerCTL _MSR</entry>
178
179 <entry align="left">Energy Efficient Turbo</entry>
180
181 <entry>Disable</entry>
182
183 <entry>Enable</entry>
184 </row>
185
186 <row>
187 <entry>Chipset Configuration / North Bridge / IIO
188 Configuration</entry>
189
190 <entry align="left">EV DFX Features</entry>
191
192 <entry>Enable</entry>
193
194 <entry>Disable</entry>
195 </row>
196
197 <row>
198 <entry>Chipset Configuration / North Bridge / Memory
199 Configuration</entry>
200
201 <entry align="left">Enforce POR</entry>
202
203 <entry>Disable</entry>
204
205 <entry>Enable</entry>
206 </row>
207
208 <row>
209 <entry>Chipset Configuration / North Bridge / Memory
210 Configuration</entry>
211
212 <entry align="left">Memory Frequency</entry>
213
214 <entry>2400</entry>
215
216 <entry>Auto</entry>
217 </row>
218
219 <row>
220 <entry>Chipset Configuration / North Bridge / Memory
221 Configuration</entry>
222
223 <entry align="left">DRAM RAPL Baseline</entry>
224
225 <entry>Disable</entry>
17 226
18 <para></para> 227 <entry>DRAM RAPL Mode 1</entry>
228 </row>
229 </tbody>
230 </tgroup>
231 </table>
19 </section> 232 </section>
20 233
21 <section id="use-cases"> 234 <section id="use-cases">
@@ -25,14 +238,14 @@
25 <title>Docker related benchmarks</title> 238 <title>Docker related benchmarks</title>
26 239
27 <section> 240 <section>
28 <title>Use Case - Forward traffic in docker</title> 241 <title>Forward traffic in Docker</title>
29 242
30 <para>Benchmarking traffic forwarding using testpmd in a Docker 243 <para>Benchmarking traffic forwarding using testpmd in a Docker
31 container.</para> 244 container.</para>
32 245
33 <para>Pktgen is used to generate UDP traffic that will reach testpmd, 246 <para>Pktgen is used to generate UDP traffic that will reach testpmd,
34 running in a docker image. It will then be forwarded back to source on 247 running in a Docker image. It will then be forwarded back to source on
35 the return trip (Forwarding). </para> 248 the return trip (Forwarding).</para>
36 249
37 <para>This test measures:</para> 250 <para>This test measures:</para>
38 251
@@ -92,7 +305,7 @@ processor.max_cstate=0 mce=ignore_ce audit=0 nmi_watchdog=0 iommu=pt /
92intel_iommu=on hugepagesz=1GB hugepages=8 default_hugepagesz=1GB / 305intel_iommu=on hugepagesz=1GB hugepages=8 default_hugepagesz=1GB /
93hugepagesz=2M hugepages=2048 vfio_iommu_type1.allow_unsafe_interrupts=1</programlisting> 306hugepagesz=2M hugepages=2048 vfio_iommu_type1.allow_unsafe_interrupts=1</programlisting>
94 307
95 <para>It is expected to have docker/guest image on target. Configure 308 <para>It is expected to have Docker/guest image on target. Configure
96 the OVS bridge:<programlisting># OVS old config clean-up 309 the OVS bridge:<programlisting># OVS old config clean-up
97killall ovsdb-server ovs-vswitchd 310killall ovsdb-server ovs-vswitchd
98rm -rf /etc/openvswitch/* 311rm -rf /etc/openvswitch/*
@@ -286,8 +499,8 @@ start</programlisting><table>
286 </section> 499 </section>
287 500
288 <section id="usecase-three-four"> 501 <section id="usecase-three-four">
289 <title>Use Case - Forward traffic from Docker to another Docker on the 502 <title>Forward traffic from Docker to another Docker on the same
290 same host</title> 503 host</title>
291 504
292 <para>Benchmark a combo test using testpmd running in two Docker 505 <para>Benchmark a combo test using testpmd running in two Docker
293 instances, one which Forwards traffic to the second one, which 506 instances, one which Forwards traffic to the second one, which
@@ -396,13 +609,13 @@ ovs-ofctl add-flow ovsbr0 in_port=2,action=output:1</programlisting>Import a
396--rxq=1 --txq=1 --txd=512 --rxd=512 --txqflags=0xf00 --port-topology=chained</programlisting>Configure 609--rxq=1 --txq=1 --txd=512 --rxd=512 --txqflags=0xf00 --port-topology=chained</programlisting>Configure
397 it in termination mode:<programlisting>set fwd rxonly</programlisting>Run 610 it in termination mode:<programlisting>set fwd rxonly</programlisting>Run
398 the testpmd application:<programlisting>start</programlisting>Open a 611 the testpmd application:<programlisting>start</programlisting>Open a
399 new console to the host and start the second docker 612 new console to the host and start the second Docker
400 instance:<programlisting>docker run -it --rm --cpuset-cpus=0,1 -v /var/run/openvswitch/:/var/run/openvswitch/ / 613 instance:<programlisting>docker run -it --rm --cpuset-cpus=0,1 -v /var/run/openvswitch/:/var/run/openvswitch/ /
401-v /mnt/huge:/mnt/huge el7_guest /bin/bash</programlisting>In the second 614-v /mnt/huge:/mnt/huge el7_guest /bin/bash</programlisting>In the second
402 container start testpmd:<programlisting>testpmd -c 0x0F --file-prefix prog2 --socket-mem 512 --no-pci / 615 container start testpmd:<programlisting>testpmd -c 0x0F --file-prefix prog2 --socket-mem 512 --no-pci /
403--vdev=virtio_user0,path=/var/run/openvswitch/vhost-user2 / 616--vdev=virtio_user0,path=/var/run/openvswitch/vhost-user2 /
404-d /usr/lib/librte_pmd_virtio.so.1.1 -- -i --disable-hw-vlan</programlisting>Run 617-d /usr/lib/librte_pmd_virtio.so.1.1 -- -i --disable-hw-vlan</programlisting>Run
405 the TestPmd application in the second docker:<programlisting>testpmd -c 0x3 -n 2 --file-prefix prog2 --socket-mem 512 --no-pci / 618 the TestPmd application in the second Docker:<programlisting>testpmd -c 0x3 -n 2 --file-prefix prog2 --socket-mem 512 --no-pci /
406--vdev=virtio_user0,path=/var/run/openvswitch/vhost-user2 / 619--vdev=virtio_user0,path=/var/run/openvswitch/vhost-user2 /
407-d /usr/lib/librte_pmd_virtio.so.1.1 -- --burst 64 --disable-hw-vlan / 620-d /usr/lib/librte_pmd_virtio.so.1.1 -- --burst 64 --disable-hw-vlan /
408--disable-rss -i --portmask=0x1 --coremask=0x2 --nb-cores=1 --rxq=1 / 621--disable-rss -i --portmask=0x1 --coremask=0x2 --nb-cores=1 --rxq=1 /
@@ -414,7 +627,7 @@ ovs-ofctl add-flow ovsbr0 in_port=2,action=output:1</programlisting>Import a
414 should be used in testpmd applications.</para> 627 should be used in testpmd applications.</para>
415 628
416 <table> 629 <table>
417 <title>Results </title> 630 <title>Results</title>
418 631
419 <tgroup cols="5"> 632 <tgroup cols="5">
420 <tbody> 633 <tbody>
@@ -495,15 +708,15 @@ ovs-ofctl add-flow ovsbr0 in_port=2,action=output:1</programlisting>Import a
495 <title>VM related benchmarks</title> 708 <title>VM related benchmarks</title>
496 709
497 <section id="usecase-four"> 710 <section id="usecase-four">
498 <title>Use Case - Forward/termination traffic in one VM</title> 711 <title>Forward/termination traffic in one VM</title>
499 712
500 <para>Benchmarking traffic (UDP) forwarding and termination using 713 <para>Benchmarking traffic (UDP) forwarding and termination using
501 testpmd in a virtual machine. </para> 714 testpmd in a virtual machine.</para>
502 715
503 <para>The Pktgen application is used to generate traffic that will 716 <para>The Pktgen application is used to generate traffic that will
504 reach testpmd running on a virtual machine, and be forwarded back to 717 reach testpmd running on a virtual machine, and be forwarded back to
505 source on the return trip. With the same setup a second measurement 718 source on the return trip. With the same setup a second measurement
506 will be done with traffic termination in the virtual machine. </para> 719 will be done with traffic termination in the virtual machine.</para>
507 720
508 <para>This test case measures:</para> 721 <para>This test case measures:</para>
509 722
@@ -778,7 +991,7 @@ show port stats 0</programlisting><table>
778 </section> 991 </section>
779 992
780 <section id="usecase-six"> 993 <section id="usecase-six">
781 <title>Use Case - Forward traffic between two VMs</title> 994 <title>Forward traffic between two VMs</title>
782 995
783 <para>Benchmark a combo test using two virtual machines, the first 996 <para>Benchmark a combo test using two virtual machines, the first
784 with traffic forwarding to the second, which terminates it.</para> 997 with traffic forwarding to the second, which terminates it.</para>