7.5. NUMA 노드 예 OVS-DPDK 배포

다음 예제의 Compute 노드에는 두 개의 NUMA 노드가 포함되어 있습니다.

  • NUMA 0에는 코어 0-7이 있습니다. sibling 스레드 쌍은 (0,1), (2,3), (4,5) 및 (6,7)입니다.
  • NUMA 1에는 8-15 코어가 있습니다. 시블링 스레드 쌍은 (8,9), (10,11), (0,13), (14,15)입니다.
  • 각 NUMA 노드는 물리적 NIC, 즉 NUMA 0의 NIC1, NUMA 1의 NIC2에 연결됩니다.
OpenStack NFV NUMA Nodes 453316 0717 ECE OVS DPDK Deployment
참고

비 데이터 경로 DPDK 프로세스의 경우 각 NUMA 노드(0,1 및 89)의 첫 번째 물리적 코어 또는 두 스레드 쌍을 예약합니다.

이 예제에서는 1500 MTU 구성도 가정하므로 OvsDpdkSocketMemory 는 모든 사용 사례에서 동일합니다.

OvsDpdkSocketMemory: "1024,1024"

DPDK의 NIC 1, PMD용 물리적 코어 1

이 사용 사례에서는 PMD에 NUMA 0에 하나의 물리적 코어를 할당합니다. 또한 해당 NUMA 노드에 대해 NIC에서 DPDK를 활성화하지 않더라도 NUMA 1에 하나의 물리적 코어를 할당해야 합니다. 나머지 코어는 게스트 인스턴스에 할당됩니다. 결과 매개변수 설정은 다음과 같습니다.

OvsPmdCoreList: "2,3,10,11"
NovaComputeCpuDedicatedSet: "4,5,6,7,12,13,14,15"

DPDK용 NIC 1, PMD용 물리적 코어 2개

이 사용 사례에서는 PMD에 NUMA 0에 두 개의 물리적 코어를 할당합니다. 또한 해당 NUMA 노드에 대해 NIC에서 DPDK를 활성화하지 않더라도 NUMA 1에 하나의 물리적 코어를 할당해야 합니다. 나머지 코어는 게스트 인스턴스에 할당됩니다. 결과 매개변수 설정은 다음과 같습니다.

OvsPmdCoreList: "2,3,4,5,10,11"
NovaComputeCpuDedicatedSet: "6,7,12,13,14,15"

DPDK의 NIC 2, PMD용 물리적 코어 1개

이 사용 사례에서는 PMD에 NUMA 1에 하나의 물리적 코어를 할당합니다. 또한 해당 NUMA 노드에 대해 NIC에서 DPDK를 활성화하지 않더라도 NUMA 0에 하나의 물리적 코어를 할당해야 합니다. 나머지 코어는 게스트 인스턴스에 할당됩니다. 결과 매개변수 설정은 다음과 같습니다.

OvsPmdCoreList: "2,3,10,11"
NovaComputeCpuDedicatedSet: "4,5,6,7,12,13,14,15"

DPDK의 NIC 2, PMD용 물리적 코어 2

이 사용 사례에서는 PMD에 NUMA 1에서 두 개의 물리적 코어를 할당합니다. 또한 해당 NUMA 노드에 대해 NIC에서 DPDK를 활성화하지 않더라도 NUMA 0에 하나의 물리적 코어를 할당해야 합니다. 나머지 코어는 게스트 인스턴스에 할당됩니다. 결과 매개변수 설정은 다음과 같습니다.

OvsPmdCoreList: "2,3,10,11,12,13"
NovaComputeCpuDedicatedSet: "4,5,6,7,14,15"

PMD용 물리적 코어 2개가 있는 DPDK의 NIC 1 및 NIC2

이 사용 사례에서는 각 NUMA 노드에서 PMD에 두 개의 물리적 코어를 할당합니다. 나머지 코어는 게스트 인스턴스에 할당됩니다. 결과 매개변수 설정은 다음과 같습니다.

OvsPmdCoreList: "2,3,4,5,10,11,12,13"
NovaComputeCpuDedicatedSet: "6,7,14,15"