NUMA-aware stream assignment
This NTPL and ntservice.ini configuration demonstrates how to independently capture traffic from two SmartNICs installed in a dual-NUMA system. Each SmartNIC supports a maximum of 128 RX streams, for a total of 256 streams that are local to its associated NUMA node, optimizing memory locality and system performance.
Configure RX host buffers in the ntservice.ini file as
follows:
[Adapter0] … HostBuffersRx = [128,16,0] … [Adapter1] … HostBuffersRx = [128,16,1] …
- The first parameter in HostBuffersRx sets the number of host RX buffers to 128 for each SmartNIC.
- The third parameter in HostBuffersRx = [128,16,<NUMA>] explicitly
sets the NUMA node for memory allocation.
-
Adapter0 is associated with NUMA node 0.
-
Adapter1 is associated with NUMA node 1.
-
Setup[NUMANode=0] = StreamId == (0..127) Setup[NUMANode=1] = StreamId == (128..255) Assign[StreamID=(0..127)] = Port==(0..1) Assign[StreamID=(128..255)] = Port==(2..3)
- The Setup commands bind streams 0–127 to NUMA node 0 and streams 128–255 to NUMA node 1.
- The Assign command maps:
- Ports 0 and 1 (belonging to Adapter0) to streams 0–127.
- Ports 2 and 3 (belonging to Adapter1) to streams 128–255.