大頁內存分配:
NUMA系統(現在的linux一般都是)
大頁內存的掛載
編譯
Loading Modules to Enable Userspace IO for DPDK
網卡綁定
echo 1024 >/sys/devices/system/node/node0/hugepages/hugepages-2048kB/nr_hugepagesecho 1024 >/sys/devices/system/node/node1/hugepages/hugepages-2048kB/nr_hugepages
[root@localhost dpdk-dst]# lscpuArchitecture: x86_64CPU op-mode(s):32-bit,64-bitByteOrder:LittleEndianCPU(s):2On-line CPU(s)list:0,1Thread(s) per core:1Core(s) per socket:2Socket(s):1NUMA node(s):1Vendor ID:GenuineIntelCPU family:6Model:61Model name:Intel(R)Core(TM) i5-5200U CPU @2.20GHzStepping:4CPU MHz:2194.916BogoMIPS:4389.83Hypervisor vendor:VMwareVirtualization type: fullL1d cache:32KL1i cache:32KL2 cache:256KL3 cache:3072KNUMA node0 CPU(s):0,1
從上面可以看到,
NUMA node(s):1
總共有一個NUMA node,注意這里的node個人理解就是具有獨立內存和CPU總線的最小計算單元(
每個node內部有自己的CPU總線和內存),而
Core就是socket里獨立的一組程序執行的
硬件單元
,比如寄存器,計算單元等,不單獨占有內存。
非NUMA系統
echo 1024 >/sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages
大頁內存的掛載
mkdir /mnt/hugemount -t hugetlbfs nodev /mnt/huge
export RTE_SDK=/home/yml/dpdk/dpdk-stable-16.07.2 //這個是你生成的編譯環境的路徑export RTE_TARGET=x86_64-native-linuxapp-gcc //編譯的環境變量export DESTDIR = /home/yml/dpdk/dpdk-stable-16.07.2/ //你的安裝路徑,就是編譯出來的文件的路徑
編譯
make install T=$RTE_TARGET
Loading Modules to Enable Userspace IO for DPDK
cd x86_64-native-linuxapp-gcc/sudo modprobe uiosudo insmod kmod/igb_uio.ko- sudo insmod kmod/rte_kni.ko
網卡綁定
./tools/dpdk-devbind.py --status 查詢網卡狀態
[root@localhost tools]#./dpdk-devbind.py --statusNetwork devices using DPDK-compatible driver============================================0000:02:05.0'82545EM Gigabit Ethernet Controller (Copper)' drv=ig`b_uio unused=e10000000:02:06.0'82545EM Gigabit Ethernet Controller (Copper)' drv=igb_uio unused=e1000Network devices using kernel driver===================================0000:02:01.0'82545EM Gigabit Ethernet Controller (Copper)'if=eno16777736 drv=e1000 unused=igb_uio *Active*0000:02:07.0'82545EM Gigabit Ethernet Controller (Copper)'if=eno67109432 drv=e1000 unused=igb_uioOther network devices=====================<none>
./tools/dpdk-devbind.py --bind=igb_uio 02:07.0
