RHEL OSP 10/11 – OVS+DPDK Tunables

93905-6a00e551c39e1c883401a511e32c88970c-pi

Tunables for Dell R630s for use when deploying OVS+DPDK

[terminal]

OSP 10/11 DPDK Tunables

#

R630 NUMA locality – CPUs

node 0 cpus: 0 2 4 6 8 10 12 14 16 18 20 22

24 26 28 30 32 34 36 38 40 42 44 46

#

node 1 cpus: 1 3 5 7 9 11 13 15 17 19 21 23

25 27 29 31 33 35 37 39 41 43 45 47

#
#

R630 NUMA locality – NIC

node 0 dpdk interface – p3p1

node 1 dpdk interface – p1p1

#
#
#

NovaVcpuPinSet (OSP 10+)

These are the cores that Nova will use for scheduling instances. Pair sibling threads together.

Using cores from NUMA node 0 only to prevent crossing NUMA boundaries

NovaVcpuPinSet: “‘4,6,8,10,12,14,16,18,20,22,28,30,32,34,36,38,40,42,44,46′”
#

NeutronDpdkCoreList (OSP 10/11) OvsPmdCoreList (OSP 12+)

This parameter configures a list of CPU cores to be used by the OVS-DPDK Poll Mode Drivers

The first core from a CPU, should be reserved for host processes, and should be excluded from this list.

NeutronDpdkCoreList: “‘2,26,3,27′”
#

HostIsolatedCoreList (OSP 10/11) IsolCpusList (OSP 12+)

A set list or range of cores (and their sibling threads) to be appended to the tuned cpu-partitioning profile and isolated from the host.

These cores will be isolated from any host processes

Assuming you want to isolate nova cores from all system processes, NovaVcpuPinSet + NeutronDpdkCoreList = HostIsolatedCoreList

HostIsolatedCoreList: “‘2,3,4,6,8,10,12,14,16,18,20,22,26,27,28,30,32,34,36,38,40,42,44,46′”
#

HostCpusList (OSP 10/11) & OvsDpdkCoreList (OSP 12+)

A list of logical cores used by OVS-DPDK processes for dpdk-lcore-mask for non-datapath operations

These cores must be mutually exclusive from the list of cores in NeutronDpdkCoreList/OvsPmdCoreList and NovaVcpuPinSet.

Allocate the first physical core (and sibling thread) from each NUMA node irrespective of DPDK interface NUMA locality.

HostCpusList: “‘0,24,1,25′”
#

Provide the number of memory channels in the format – [allowed_pattern: “[0-9]+”]:

NeutronDpdkMemoryChannels: “4”
#

Set the memory allocated for each socket:

NeutronDpdkSocketMemory: “‘2048,2048′”
#

An array of filters used by Nova to filter a node.These filters will be applied in the order they are listed,

so place your most restrictive filters first to make the filtering process more efficient.

NovaSchedulerDefaultFilters: “RamFilter,ComputeFilter,AvailabilityZoneFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,PciPassthroughFilter,NUMATopologyFilter”
#

Kernel arguments for Compute node

ComputeKernelArgs: “default_hugepagesz=1GB hugepagesz=1G hugepages=32 iommu=pt intel_iommu=on”
[/terminal]

 

Leave a Reply