我正在使用testpmd (DPDK 17.11.1)。我创建了两个端口P0和P1,并将流量从P0发送到P1。我发现它只使用了两个内存通道。以下是启动testpmd的命令:
./testpmd -n4 -l2,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,33 -- --rxd=4096 --txd=4096 --numa --rxq=8 --txq=8 --nb-cores=16 --numa --forward-mode=mac -i下面是pcm工具的结果,它表明4个内存通道中只有2个在使用:
|---------------------------------------||---------------------------------------|
|---------------------------------------||---------------------------------------|
|-- Socket 0 --||-- Socket 1 --|
|---------------------------------------||---------------------------------------|
|-- Memory Channel Monitoring --||-- Memory Channel Monitoring --|
|---------------------------------------||---------------------------------------|
|-- Mem Ch 0: Reads (MB/s): 0.06 --||-- Mem Ch 0: Reads (MB/s): 0.01 --|
|-- Writes(MB/s): 0.13 --||-- Writes(MB/s): 0.01 --|
|-- Mem Ch 1: Reads (MB/s): 141.17 --||-- Mem Ch 1: Reads (MB/s): 1642.35 --|
|-- Writes(MB/s): 262.84 --||-- Writes(MB/s): 11842.28 --|
|-- Mem Ch 2: Reads (MB/s): 140.44 --||-- Mem Ch 2: Reads (MB/s): 1639.97 --|
|-- Writes(MB/s): 261.67 --||-- Writes(MB/s): 11850.11 --|
|-- Mem Ch 3: Reads (MB/s): 0.46 --||-- Mem Ch 3: Reads (MB/s): 0.40 --|
|-- Writes(MB/s): 0.55 --||-- Writes(MB/s): 0.40 --|
|-- NODE 0 Mem Read (MB/s) : 282.13 --||-- NODE 1 Mem Read (MB/s) : 3282.72 --|
|-- NODE 0 Mem Write(MB/s) : 525.19 --||-- NODE 1 Mem Write(MB/s) : 23692.79 --|
|-- NODE 0 P. Write (T/s): 15496 --||-- NODE 1 P. Write (T/s): 15947 --|
|-- NODE 0 Memory (MB/s): 807.33 --||-- NODE 1 Memory (MB/s): 26975.52 --|
|---------------------------------------||---------------------------------------|
|---------------------------------------||---------------------------------------|
|-- System Read Throughput(MB/s): 3564.86 --|
|-- System Write Throughput(MB/s): 24217.99 --|
|-- System Memory Throughput(MB/s): 27782.84 --|
|---------------------------------------||---------------------------------------|如何使用所有四个内存通道?
发布于 2018-03-24 00:09:23
我们使用-n指定的内存通道数量并不能做很多事情:它只是将每个内存池元素与DPDK Programmer's Guide中描述的不同内存通道对齐
即使我们在那里放了一个无效的数字,我们仍然可以使用所有的通道,也许不是最优的。可能有一些特殊情况,但这些情况非常少见,不仅可以使用-n选项轻松“修复”,还可以使用Testpmd User Guide中描述的--mbuf-size=N选项调整testpmd mbuf大小(即内存池元素)。
因此,我猜测命令行选项并不那么重要,真正的问题是您使用的系统没有每个NUMA节点有四个DIMM,即没有8个单独的DIMM。您可以尝试使用sudo dmidecode | grep DIMM或仅通过物理方式进行检查。
https://stackoverflow.com/questions/49452267
复制相似问题