1.
Libtrace on Github on line 644 ~ 677 (可能可以在這裡改CPU使用量 / 記憶體通道數量參數)。
預設使用CPU的最後一個核心。
my_cpu on line 651,這個是CPU編號還是數量??
nb_cpu on line 1541,電腦CPU所有核心數目。
測一下這台電腦記憶體通道數量 >> 16 (這邊顯示的可能是可以插的SLOT數量,不是已經插的記憶體)
為什麼要設定成記憶體通道數量的一半?
2.
做實驗時確認一下用的是不是編號最後一個CPU core on line 694
Ans;對。目前使用的是Core 32。
3.
line 708 ??
Currently, we are limited to 1 instance per core due to the way memory is allocated.
4.
line 677 記憶體量配置
"-m", "512",
5.
原DPDK APP參數設定
-c COREMASK (Set the hexadecimal bitmask of the cores to run on.)
-n NUM (Set the number of memory channels to use.)
-m MB (Memory to allocate. See also --socket-mem.)
sudo ./testpmd -c 0xF -n 4 -- -i --portmask=0x1 --nb-cores=26. Change -m 1024 / -n 2
對模擬結果沒有影響。
一樣只有第一個階段有值,其他三個階段沒有值
7. tracereplay ~121 secs
ens1f1 Link encap:Ethernet HWaddr 00:1b:2b:1c:2d:11
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:20406246 errors:0 dropped:0 overruns:0 frame:0
TX packets:113 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:7813304299 (7.8 GB) TX bytes:20666 (20.6 KB)
8. tcpreplay ~61 secs
ens1f1 Link encap:Ethernet HWaddr 00:1b:2b:1c:2d:11
inet6 addr: fe80::2261:eafc:e11a:7f75/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:30804777 errors:0 dropped:0 overruns:0 frame:0
TX packets:58 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1853030504 (1.8 GB) TX bytes:10972 (10.9 KB)
9.
Intel Data Plane Development Kit (dpdk:) - This format is currently experimental
Requires Intel DPDK to be installed and kernel modules to be loaded
Better performance than int: and ring: under the correct conditions.
Binds to a single CPU core and polls on a buffer, this means waiting for a packet uses 100% CPU on that bound core.
You can only use a single instance of the dpdk: format at a given time - that is you can listen to a single interface or write to a single interface but not both.
For more information please read over DPDKNotes, which describes the libtrace DPDK support in more detail