<?xml version="1.0" encoding="UTF-8" standalone="yes"?><oembed><version><![CDATA[1.0]]></version><provider_name><![CDATA[Red Hat Stack]]></provider_name><provider_url><![CDATA[http://redhatstackblog.redhat.com]]></provider_url><author_name><![CDATA[m4r1k]]></author_name><author_url><![CDATA[https://redhatstackblog.redhat.com/author/m4r1k/]]></author_url><title><![CDATA[Tuning for Zero Packet Loss in Red Hat OpenStack Platform &#8211; Part&nbsp;1]]></title><type><![CDATA[link]]></type><html><![CDATA[<p><span style="font-weight:400;">For Telcos considering OpenStack, one of the major areas of focus can be around network performance. While the performance discussion may often begin with talk of throughput numbers expressed in Million-packets-per-second (Mpps) values across Gigabit-per-second (Gbps) hardware, it really is only the tip of the performance iceberg. The most common requirement is to have absolutely stable and deterministic network performance (Mpps and latency) over the absolutely fastest possible throughput. With that in mind, many applications in the Telco space require low latency that can only tolerate zero packet loss. </span></p>
<p><span style="font-weight:400;">In this “Operationalizing OpenStack” blogpost <a href="https://it.linkedin.com/in/federico-iezzi-70070539/en" target="_blank" rel="noopener">Federico Iezzi, EMEA Cloud Architect with Red Hat</a>, discusses some of the real-world deep tuning and process required to make zero packet loss a reality!</span></p>
<p><img data-attachment-id="2333" data-permalink="https://redhatstackblog.redhat.com/2017/06/08/using-ansible-validations-with-red-hat-openstack-platform-part-1/opwithtoolsinside/" data-orig-file="https://redhatstackblog.files.wordpress.com/2017/06/opwithtoolsinside.png?w=384&#038;h=200" data-orig-size="384,200" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="opwithtoolsinside" data-image-description="" data-medium-file="https://redhatstackblog.files.wordpress.com/2017/06/opwithtoolsinside.png?w=384&#038;h=200?w=300" data-large-file="https://redhatstackblog.files.wordpress.com/2017/06/opwithtoolsinside.png?w=384&#038;h=200?w=384" class=" size-full wp-image-2333 aligncenter" src="https://redhatstackblog.files.wordpress.com/2017/06/opwithtoolsinside.png?w=384&#038;h=200" alt="opwithtoolsinside" width="384" height="200" srcset="https://redhatstackblog.files.wordpress.com/2017/06/opwithtoolsinside.png 384w, https://redhatstackblog.files.wordpress.com/2017/06/opwithtoolsinside.png?w=150&amp;h=78 150w, https://redhatstackblog.files.wordpress.com/2017/06/opwithtoolsinside.png?w=300&amp;h=156 300w" sizes="(max-width: 384px) 100vw, 384px" /></p>
<p><!--more--></p>
<h2><strong>Packet loss is bad for business &#8230;</strong></h2>
<p><span style="font-weight:400;">Packet loss can be defined as occurring “when one or more packets of data travelling across a computer network fail to reach their destination [</span><a href="https://en.wikipedia.org/wiki/Packet_loss" target="_blank" rel="noopener">1</a><span style="font-weight:400;">].” Packet loss results in protocol latency as losing a TCP packet requires retransmission, which takes time. What’s worse, protocol latency manifests itself externally as “application delay.” And, of course, “application delay” is nothing more than a fancy term for something that all Telco’s want to avoid: a fault. So, as network performance degrades, and packets drop, retransmission occurs at higher and higher rates.  The more retransmission the more latency experienced and the slower the system gets. With increased packets due to this retransmission we also see increased congestion slowing the system even further.</span></p>
<p><img data-attachment-id="2616" data-permalink="https://redhatstackblog.redhat.com/2017/07/11/tuning-for-zero-packet-loss-in-red-hat-openstack-platform-part-1/screen-shot-2017-06-26-at-9-17-04-am/" data-orig-file="https://redhatstackblog.files.wordpress.com/2017/06/screen-shot-2017-06-26-at-9-17-04-am.png?w=667&#038;h=352" data-orig-size="667,352" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="Screen Shot 2017-06-26 at 9.17.04 AM" data-image-description="" data-medium-file="https://redhatstackblog.files.wordpress.com/2017/06/screen-shot-2017-06-26-at-9-17-04-am.png?w=667&#038;h=352?w=300" data-large-file="https://redhatstackblog.files.wordpress.com/2017/06/screen-shot-2017-06-26-at-9-17-04-am.png?w=667&#038;h=352?w=667" class="alignnone size-full wp-image-2616" src="https://redhatstackblog.files.wordpress.com/2017/06/screen-shot-2017-06-26-at-9-17-04-am.png?w=667&#038;h=352" alt="Screen Shot 2017-06-26 at 9.17.04 AM" width="667" height="352" srcset="https://redhatstackblog.files.wordpress.com/2017/06/screen-shot-2017-06-26-at-9-17-04-am.png 667w, https://redhatstackblog.files.wordpress.com/2017/06/screen-shot-2017-06-26-at-9-17-04-am.png?w=150&amp;h=79 150w, https://redhatstackblog.files.wordpress.com/2017/06/screen-shot-2017-06-26-at-9-17-04-am.png?w=300&amp;h=158 300w" sizes="(max-width: 667px) 100vw, 667px" /></p>
<h2><strong>Tune in now for better performance …</strong></h2>
<p><span style="font-weight:400;">So how do we prepare OpenStack for Telco? </span></p>
<figure data-shortcode="caption" id="attachment_2706" style="width: 240px" class="wp-caption alignright"><img data-attachment-id="2706" data-permalink="https://redhatstackblog.redhat.com/2017/07/11/tuning-for-zero-packet-loss-in-red-hat-openstack-platform-part-1/30019218201_a1d7f1963c_m-2/" data-orig-file="https://redhatstackblog.files.wordpress.com/2017/06/30019218201_a1d7f1963c_m1-e1499814594368.jpg" data-orig-size="180,135" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="30019218201_a1d7f1963c_m" data-image-description="" data-medium-file="https://redhatstackblog.files.wordpress.com/2017/06/30019218201_a1d7f1963c_m1-e1499814594368.jpg?w=180" data-large-file="https://redhatstackblog.files.wordpress.com/2017/06/30019218201_a1d7f1963c_m1-e1499814594368.jpg?w=180" class="alignnone size-full wp-image-2706" src="https://redhatstackblog.files.wordpress.com/2017/06/30019218201_a1d7f1963c_m1-e1499814594368.jpg?w=240&#038;h=180" alt="30019218201_a1d7f1963c_m1.jpg" width="240" height="180" srcset="https://redhatstackblog.files.wordpress.com/2017/06/30019218201_a1d7f1963c_m1-e1499814594368.jpg 180w, https://redhatstackblog.files.wordpress.com/2017/06/30019218201_a1d7f1963c_m1-e1499814594368.jpg?w=150&amp;h=113 150w" sizes="(max-width: 240px) 100vw, 240px" /><figcaption class="wp-caption-text">Photo CC0-licensed (<a href="https://www.flickr.com/photos/cogdog/30019218201/in/photolist-MJGkHB-qKsYsW-BhiivB-oDqBXE-tfMgGa-9nmiV7-PUQC3G-oVK96p-8Y7QYt-5C6oVt-nmnK1K-s6e23X-e295n4-W3YdCE-r8a1zy-ddUfHE-cGmoQ-ceuHL3-ajaosX-h8QniS-8w3ugn-RUWLJ3-e2eEy9-jJjAUa-dYVuDA-dYPNkF-a8WGcY-jJiCmc-H49X6H-8w3uMv-4myfZU-7C8CX1-hrZoDa-dACSQP-7XVw8D-hrYWtf-uA6FS-74gri9-bUo4ZY-dACRDH-gJimbD-BpJW7K-dsdiDs-gebCKa-7qAJib-4VnXKX-dsdkiy-h1YRTF-hs1HR5-jJkUFw" target="_blank" rel="noopener">Alan Levine</a>)</figcaption></figure>
<p><span style="font-weight:400;">It&#8217;s easy! Tuning!<br />
</span><span style="font-weight:400;"><br />
</span><span style="font-weight:400;">Red Hat OpenStack Platform is supported by a detailed Network Functions Virtualization (NFV) Reference Architecture which offers a lot of deep tuning across multiple technologies ranging from Red Hat Enterprise Linux to the <a href="http://dpdk.org/" target="_blank" rel="noopener">Data Plane Development Kit</a> (DPDK) from Intel.  </span><span style="font-weight:400;">A great place to start is with the Red Hat </span><a href="https://access.redhat.com/documentation/en-us/red_hat_openstack_platform/11/html/network_functions_virtualization_product_guide/" target="_blank" rel="noopener">Network Functions Virtualization (NFV) Product Guide</a>. It <span style="font-weight:400;">covers tuning for the following components:</span></p>
<ul>
<li style="font-weight:400;"><span style="font-weight:400;">Red Hat Enterprise Linux version 7.3</span></li>
<li style="font-weight:400;"><span style="font-weight:400;">Red Hat OpenStack Platform version 10 or greater </span></li>
<li style="font-weight:400;"><span style="font-weight:400;">Data plane tuning</span>
<ul>
<li style="font-weight:400;"><span style="font-weight:400;">Open vSwitch with DPDK at least version 2.6</span></li>
<li style="font-weight:400;"><span style="font-weight:400;">SR-IOV VF or PF</span></li>
</ul>
</li>
<li style="font-weight:400;"><span style="font-weight:400;">System Partitioning through Tuned using profile cpu-partitioning at least version 2.8</span></li>
<li style="font-weight:400;"><span style="font-weight:400;">Non-uniform memory access (NUMA) and virtual non-uniform memory access (vNUMA)</span></li>
<li style="font-weight:400;"><span style="font-weight:400;">General OpenStack configuration</span></li>
</ul>
<h2><strong>Hardware notes and prep …</strong></h2>
<p><span style="font-weight:400;">It&#8217;s worth mentioning that the hardware to be used in achieving zero packet loss often</span></p>
<figure data-shortcode="caption" id="attachment_2710" style="width: 240px" class="wp-caption alignleft"><img data-attachment-id="2710" data-permalink="https://redhatstackblog.redhat.com/2017/07/11/tuning-for-zero-packet-loss-in-red-hat-openstack-platform-part-1/28584287540_a29eb7a12b_m/" data-orig-file="https://redhatstackblog.files.wordpress.com/2017/06/28584287540_a29eb7a12b_m.jpg?w=240&#038;h=159" data-orig-size="240,159" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="28584287540_a29eb7a12b_m" data-image-description="" data-medium-file="https://redhatstackblog.files.wordpress.com/2017/06/28584287540_a29eb7a12b_m.jpg?w=240&#038;h=159?w=240" data-large-file="https://redhatstackblog.files.wordpress.com/2017/06/28584287540_a29eb7a12b_m.jpg?w=240&#038;h=159?w=240" class=" size-full wp-image-2710 alignleft" src="https://redhatstackblog.files.wordpress.com/2017/06/28584287540_a29eb7a12b_m.jpg?w=240&#038;h=159" alt="28584287540_a29eb7a12b_m" width="240" height="159" srcset="https://redhatstackblog.files.wordpress.com/2017/06/28584287540_a29eb7a12b_m.jpg 240w, https://redhatstackblog.files.wordpress.com/2017/06/28584287540_a29eb7a12b_m.jpg?w=150&amp;h=99 150w" sizes="(max-width: 240px) 100vw, 240px" /><figcaption class="wp-caption-text">Photo CC0-licensed (<a href="https://www.flickr.com/photos/142796784@N07/28584287540/in/photolist-dBv6WD-dBAwnm-dBAxcf-dBAvzS-dBAxrE-dBAwsq-6sBcWv-dBAwVb-dBv8EX-dBv6k2-dBAxCo-dBv6L2-dBAwcs-dBv62R-dBAw11-dBAxvU-dBAx6Y-dBv5np-dBv5bB-dBAuYj-dBAu7G-dBAwBC-dBv6eF-dBAvEQ-dBv684-dBv5TR-dBAu2Q-dBv7Dt-dBAwHS-dBv5GZ-dBAuP3-dBv6zX-dBAwxh-dBAuro-dBv6Fk-dBAudW-dBAuHA-dBv8yD-dBAuBS-dBAxn3-dBAwh7-KxTWPN" target="_blank" rel="noopener">PC Gehäuse</a>)</figcaption></figure>
<p><span style="font-weight:400;">needs to be latest generation. Hardware decisions around network interface cards and vendors can often affect packet loss and tuning success. For hardware, be sure to consult your vendor’s documentation prior to purchase to ensure the best possible outcomes. Ultimately, regardless of hardware, some setup should be done in the hardware BIOS/UEFI for stable CPU frequency while removing power saving features.</span></p>
<table border="1">
<tbody>
<tr bgcolor="820000">
<td><b>Setting</b></td>
<td><b>Value</b></td>
</tr>
<tr>
<td><span style="font-weight:400;">MLC Streamer</span></td>
<td><span style="font-weight:400;">Enabled</span></td>
</tr>
<tr>
<td><span style="font-weight:400;">MLC Spatial Prefetcher</span></td>
<td><span style="font-weight:400;">Enabled</span></td>
</tr>
<tr>
<td><span style="font-weight:400;">Memory RAS and Performance Config </span></td>
<td><span style="font-weight:400;">Maximum Performance</span></td>
</tr>
<tr>
<td><span style="font-weight:400;">NUMA optimized</span></td>
<td><span style="font-weight:400;">Enabled</span></td>
</tr>
<tr>
<td><span style="font-weight:400;">DCU Data Prefetcher</span></td>
<td><span style="font-weight:400;">Enabled</span></td>
</tr>
<tr>
<td><span style="font-weight:400;">DCA</span></td>
<td><span style="font-weight:400;">Enabled</span></td>
</tr>
<tr>
<td><span style="font-weight:400;">CPU Power and Performance</span></td>
<td><span style="font-weight:400;">Performance</span></td>
</tr>
<tr>
<td><span style="font-weight:400;">C6 Power State</span></td>
<td><span style="font-weight:400;">Disabled</span></td>
</tr>
<tr>
<td><span style="font-weight:400;">C3 Power State</span></td>
<td><span style="font-weight:400;">Disabled</span></td>
</tr>
<tr>
<td><span style="font-weight:400;">CPU C-State</span></td>
<td><span style="font-weight:400;">Disabled</span></td>
</tr>
<tr>
<td><span style="font-weight:400;">C1E Autopromote</span></td>
<td><span style="font-weight:400;">Disabled</span></td>
</tr>
<tr>
<td><span style="font-weight:400;">Cluster-on-Die</span></td>
<td><span style="font-weight:400;">Disabled</span></td>
</tr>
<tr>
<td><span style="font-weight:400;">Patrol Scrub</span></td>
<td><span style="font-weight:400;">Disabled</span></td>
</tr>
<tr>
<td><span style="font-weight:400;">Demand Scrub</span></td>
<td><span style="font-weight:400;">Disabled</span></td>
</tr>
<tr>
<td><span style="font-weight:400;">Correctable Error</span></td>
<td><span style="font-weight:400;">10</span></td>
</tr>
<tr>
<td><span style="font-weight:400;">Intel(R) Hyper-Threading</span></td>
<td><span style="font-weight:400;">Disabled or Enabled</span></td>
</tr>
<tr>
<td><span style="font-weight:400;">Active Processor Cores</span></td>
<td><span style="font-weight:400;">All</span></td>
</tr>
<tr>
<td><span style="font-weight:400;">Execute Disable Bit</span></td>
<td><span style="font-weight:400;">Enabled</span></td>
</tr>
<tr>
<td><span style="font-weight:400;">Intel(R) Virtualization Technology</span></td>
<td><span style="font-weight:400;">Enabled</span></td>
</tr>
<tr>
<td><span style="font-weight:400;">Intel(R) TXT</span></td>
<td><span style="font-weight:400;">Disabled</span></td>
</tr>
<tr>
<td><span style="font-weight:400;">Enhanced Error Containment Mode</span></td>
<td><span style="font-weight:400;">Disabled</span></td>
</tr>
<tr>
<td><span style="font-weight:400;">USB Controller</span></td>
<td><span style="font-weight:400;">Enabled</span></td>
</tr>
<tr>
<td><span style="font-weight:400;">USB 3.0 Controller</span></td>
<td><span style="font-weight:400;">Auto</span></td>
</tr>
<tr>
<td><span style="font-weight:400;">Legacy USB Support</span></td>
<td><span style="font-weight:400;">Disabled</span></td>
</tr>
<tr>
<td><span style="font-weight:400;">Port 60/64 Emulation</span></td>
<td><span style="font-weight:400;">Disabled</span></td>
</tr>
</tbody>
</table>
<p><span style="font-weight:400;"><br />
BIOS Settings from: </span></p>
<ul>
<li><a href="http://docs.openvswitch.org/en/latest/intro/install/dpdk/#recommended-bios-settings" target="_blank" rel="noopener">Open vSwitch with DPDK</a></li>
<li><a href="https://wiki.opnfv.org/display/kvm/KVM4NFV+Test++Environment" target="_blank" rel="noopener">KVM4NFV Test Environment</a></li>
</ul>
<h2><strong>Divide and Conquer &#8230;<br />
</strong></h2>
<p>Properly enforcing resource partitioning is essential in achieving zero packet loss performance and to do this you need to partition the resources between the host and the guest correctly. System partitioning ensures that software resources running on the host are always given access to dedicated hardware. However, partitioning goes further than just access to hardware as it can be used to ensure that resources utilize the closest possible memory addresses across all the processors. When a CPU retrieves data from a memory address it first looks at the local cache on the local processor core itself. Proper partitioning, via tuning, ensures that requests are answered from the closest cache (L1, L2 or L3 cache) as well as from the local memory, minimizing transaction times and the usage of a point-to-point processor interconnection bus such as the QPI (<a href="https://en.wikipedia.org/wiki/Intel_QuickPath_Interconnect" target="_blank" rel="noopener">Intel QuickPath Interconnect</a>). This way of accessing and dividing the memory is defined as NUMA (non-uniform memory access) design.</p>
<h2><strong>Tuned in …</strong></h2>
<p><span style="font-weight:400;">System partitioning involves a lot of complex, low-level tuning. So how does one do this easily? </span></p>
<p><span style="font-weight:400;">You’ll need to use the </span><a href="https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html-single/Performance_Tuning_Guide/#sect-Red_Hat_Enterprise_Linux-Performance_Tuning_Guide-Performance_Monitoring_Tools-tuned_and_tuned_adm" target="_blank" rel="noopener">tuned</a><span style="font-weight:400;"> daemon along with the the accompanying cpu partitioning profile. Tuned is a daemon that monitors the use of system components and dynamically tunes system settings based on that monitoring information. Tuned is distributed with a number of </span><a href="https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html-single/Performance_Tuning_Guide/#custom-profiles" target="_blank" rel="noopener">predefined profiles</a><span style="font-weight:400;"> for common use cases. For all this to work, you’ll need the newest tuned features. This requires the </span><a href="https://access.redhat.com/downloads/content/tuned/2.8.0-2.el7/noarch/fd431d51/package" target="_blank" rel="noopener">latest version of tuned</a><span style="font-weight:400;"> (i.e. 2.8 or later) as well as the </span><a href="https://access.redhat.com/downloads/content/tuned-profiles-cpu-partitioning/2.8.0-2.el7/noarch/fd431d51/package" target="_blank" rel="noopener">latest tuned cpu-partitioning profile</a><span style="font-weight:400;"> (i.e. 2.8 or later). Both have are available publicly via the </span><a href="https://www.redhat.com/en/about/blog/red-hat-enterprise-linux-74-beta-now-available" target="_blank" rel="noopener">Red Hat Enterprise Linux 7.4 beta release</a><span style="font-weight:400;"> or you can grab the </span><a href="https://github.com/fcelda/tuned" target="_blank" rel="noopener">daemon</a><span style="font-weight:400;"> and </span><a href="https://github.com/redhat-performance/tuned/tree/master/profiles/cpu-partitioning" target="_blank" rel="noopener">profiles</a><span style="font-weight:400;"> directly from their upstream projects. </span></p>
<blockquote><p>Interested in the latest generation of Red Hat Enterprise Linux? Be the first to know when it is released by following the official <a href="http://rhelblog.redhat.com/" target="_blank" rel="noopener">Red Hat Enterprise Linux Blog</a>!</p></blockquote>
<p><span style="font-weight:400;"><br />
However, before any tuning can begin, you must first decide how the system should be partitioned.<img data-attachment-id="2620" data-permalink="https://redhatstackblog.redhat.com/2017/07/11/tuning-for-zero-packet-loss-in-red-hat-openstack-platform-part-1/screen-shot-2017-06-26-at-9-19-36-am/" data-orig-file="https://redhatstackblog.files.wordpress.com/2017/06/screen-shot-2017-06-26-at-9-19-36-am.png?w=635&#038;h=291" data-orig-size="635,291" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="Screen Shot 2017-06-26 at 9.19.36 AM" data-image-description="" data-medium-file="https://redhatstackblog.files.wordpress.com/2017/06/screen-shot-2017-06-26-at-9-19-36-am.png?w=635&#038;h=291?w=300" data-large-file="https://redhatstackblog.files.wordpress.com/2017/06/screen-shot-2017-06-26-at-9-19-36-am.png?w=635&#038;h=291?w=635" class=" size-full wp-image-2620 aligncenter" src="https://redhatstackblog.files.wordpress.com/2017/06/screen-shot-2017-06-26-at-9-19-36-am.png?w=635&#038;h=291" alt="Screen Shot 2017-06-26 at 9.19.36 AM" width="635" height="291" srcset="https://redhatstackblog.files.wordpress.com/2017/06/screen-shot-2017-06-26-at-9-19-36-am.png 635w, https://redhatstackblog.files.wordpress.com/2017/06/screen-shot-2017-06-26-at-9-19-36-am.png?w=150&amp;h=69 150w, https://redhatstackblog.files.wordpress.com/2017/06/screen-shot-2017-06-26-at-9-19-36-am.png?w=300&amp;h=137 300w" sizes="(max-width: 635px) 100vw, 635px" /></span></p>
<p><span style="font-weight:400;">Based on Red Hat experience with customer deployments, we usually find it necessary to define how the system should be partitioned for every specific compute model. In the example pictured above, the total number of PMD cores &#8211; one CPU core is two CPU threads &#8211; had to be carefully calculated by knowing the overall required Mpps as well as the total number of DPDK interfaces, both physical and vPort. An unbalanced PMD number versus DPDK ports will result in lower performance and interrupts which will generate packet-loss. The rest of the tuning was for the VNF threads, excluding at least one core per NUMA node for the operating system.</span></p>
<hr />
<p><em><strong>Looking for more great ways to ensure your Red Hat OpenStack Platform deployment is rock solid? Check out the Red Hat Services Webinar <a href="http://Don't Fail at scale:https://vts.inxpo.com/scripts/Server.nxp?LASCmd=AI:4;F:QS!10100&amp;ShowKey=39471&amp;Referrer=https%3A%2F%2F" target="_blank" rel="noopener">Don&#8217;t fail at scale: How to plan, build, and operate a successful OpenStack cloud</a> today! </strong></em></p>
<hr />
<p><span style="font-weight:400;"><br />
Looking at the </span><a href="https://github.com/redhat-performance/tuned/tree/master/profiles/cpu-partitioning" target="_blank" rel="noopener">upstream templates</a><span style="font-weight:400;"> as well as in the tuned cpu-partitioning profile, there is a lot to understand about the specific settings that are executed on each core per NUMA node.</span></p>
<p><span style="font-weight:400;">So, just what needs to be tuned? <a href="http://redhatstackblog.redhat.com/2017/07/13/tuning-for-zero-packet-loss-in-red-hat-openstack-platform-part-2/" target="_blank" rel="noopener">Find out more in Part 2</a> where you’ll get a thorough and detailed breakdown of many specific tuning parameters to help achieve zero packet loss!</span></p>
<hr />
<p><a href="http://redhatstackblog.redhat.com/category/operationalizing-openstack/" target="_blank" rel="noopener"><span class="s1"><i>The “Operationalizing OpenStack” series features real-world tips, advice and experiences from experts </i></span><span class="s1"><i>running and deploying OpenStack.</i></span></a></p>
]]></html><thumbnail_url><![CDATA[https://i2.wp.com/redhatstackblog.files.wordpress.com/2017/06/screen-shot-2017-06-26-at-9-19-36-am.png?fit=440%2C330&ssl=1]]></thumbnail_url><thumbnail_width><![CDATA[440]]></thumbnail_width><thumbnail_height><![CDATA[202]]></thumbnail_height></oembed>