9.4. 두 개의 NUMA 노드 예 OVS-DPDK 배포
다음 예제의 컴퓨팅 노드에는 두 개의 NUMA 노드가 포함됩니다.
- NUMA 0에는 코어 0-7이 있습니다. 형제 스레드 쌍은 (0,1), (2,3), (4,5) 및 (6,7)입니다.
- NUMA 1에는 코어 8-15가 있습니다. 형제 스레드 쌍은 (8,9)(10,11), (12,13) 및 (14,15)입니다.
- 각 NUMA 노드는 물리적 NIC, 즉 NUMA 0의 NIC1, NUMA 1의 NIC2에 연결됩니다.
그림 9.2. ovs-DPDK: 두 개의 NUMA 노드 예
데이터 경로 DPDK 프로세스가 아닌 경우 각 NUMA 노드 (0,1 및 8,9)에서 첫 번째 물리적 코어 또는 두 스레드 쌍을 예약합니다.
이 예제에서는 1500 MTU 구성도 가정하므로 OvsDpdkSocketMemory
는 모든 사용 사례에서 동일합니다.
OvsDpdkSocketMemory: "1024,1024"
DPDK용 NIC 1 - PMD에 하나의 물리적 코어
이 사용 사례에서는 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에 두 개의 물리적 코어
이 사용 사례에서는 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에 하나의 물리적 코어를 할당합니다. DPDK가 해당 NUMA 노드에 대해 NIC에서 활성화되지 않더라도 NUMA 0에서 하나의 물리적 코어도 할당해야 합니다. 나머지 코어는 게스트 인스턴스에 할당됩니다. 결과 매개변수 설정은 다음과 같습니다.
OvsPmdCoreList: "2,3,10,11" NovaComputeCpuDedicatedSet: "4,5,6,7,12,13,14,15"
DPDK의 경우 NIC 2 (PMD에 두 개의 물리적 코어 포함)
이 사용 사례에서는 PMD에 대해 NUMA 1에 두 개의 물리적 코어를 할당합니다. DPDK가 해당 NUMA 노드에 대해 NIC에서 활성화되지 않더라도 NUMA 0에서 하나의 물리적 코어도 할당해야 합니다. 나머지 코어는 게스트 인스턴스에 할당됩니다. 결과 매개변수 설정은 다음과 같습니다.
OvsPmdCoreList: "2,3,10,11,12,13" NovaComputeCpuDedicatedSet: "4,5,6,7,14,15"
PMD에 두 개의 물리적 코어가 있는 DPDK용 NIC 1 및 NIC2
이 사용 사례에서는 PMD에 대해 각 NUMA 노드에 두 개의 물리적 코어를 할당합니다. 나머지 코어는 게스트 인스턴스에 할당됩니다. 결과 매개변수 설정은 다음과 같습니다.
OvsPmdCoreList: "2,3,4,5,10,11,12,13" NovaComputeCpuDedicatedSet: "6,7,14,15"