DPDK配置

设置大页内存

查看CPU支持的巨页类型


cat /proc/cpuinfo | grep flags
# pse: 2M巨页
# pse36: 支持36位,即4M巨页
# page1gb: 支持1GB巨页

修改内核参数


sudo vim /etc/default/grub

在GRUB_CMDLINE_LINUX后追加如下内容

default_hugepages=1G hugepagesz=2M hugepages=1024 isolcpus=0-2

xxx@ubuntu:~$ cat /etc/default/grub
# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
#   info -f grub -n 'Simple configuration'

GRUB_DEFAULT=0
GRUB_TIMEOUT_STYLE=hidden
GRUB_TIMEOUT=0
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet"
GRUB_CMDLINE_LINUX="find_preseed=/preseed.cfg auto noprompt priority=critical locale=en_US default_hugepages=1G hugepagesz=2M hugepages=1024 isolcpus=0-2"


重新生成引导配置


update-gurb
# 或者执行下面的命令
# sudo grub-mkconfig -o /boot/grub/grub.cfg

#DPDK 编译安装

DPDK在20版本以后需要使用meson和ninja编译安装。

(1)安装pip3环境


yum install python3 python3-pip
pip3 install --upgrade pip

(2) 安装meson


pip3 install meson

(3)安装ninja


pip3 install ninja

编译安装


tar xzf dpdk-stable-21.11.2-new.tar.gz
cd dpdk-stable-21.11.2/
meson build
ninja -C build
ninja -C build install

编译加载igb_uio


cd kernel/linux/igb_uio
make
sudo modprobe uio
sudo insmod igb_uio.ko

关闭要绑定的网卡

sudo ifconfig ens160 down

查看DPDK绑定状态

./dpdk-devbind.py -s

绑定DPDK网卡

./usertools/dpdk-devbind.py -b igb_uio 0000:03:00.0

解绑DPDK网卡

./dpdk-devbind.py -u 0000:03:00.0

扩展

NUMA

NUMA(Non-Uniform Memory Access,非一致性内存访问)和SMP(Symmetric Multi- Processor,对称多处理器系统)是两种不同的CPU硬

件体系架构。 

SMP的主要特征是共享,所有的CPU共享使用全部资源,例如内存、总线和I/O,多个CPU对称工作,彼此之间没有主次之分,平等地访问共享
的资源,这样势必引入资源的竞争问题,从而导致它的扩展内力非常有限;NUMA架构在中大型系统上一直非常盛行,也是高性能的解决方案,
在系统延迟方面表现也都很优秀。

在NUMA架构下,CPU的概念从大到小依次是:Socket、Core、Processor。随着多核技术的发展,我们将多个CPU封装在一起,这个封装一
般被称为Socket(插槽),而Socket中的每个核心被称为Core,为了进一步提升CPU的处理能力,Intel又引入了HT(Hyper-Threading,超线
程)的技术,一个Core打开HT之后,在OS看来就是两个核,当然这个核是逻辑上的概念,所以也被称为Logical Processor,本文简称为
Processor。

node

    NUMA体系结构中多了node的概念,主要用于解决core分组问题,在目前常见的分组中,一个socket里有一个node,每个node有自己的内部
    CPU、总线和内存,同时还可以访问其他node内的内存,NUMA最大的优势是可以方便增加CPU数量。

lscpu

[root@E01 node1]# lscpu
架构:                           x86_64
CPU 运行模式:                   32-bit, 64-bit
字节序:                         Little Endian
Address sizes:                   46 bits physical, 48 bits virtual
CPU:                             24
在线 CPU 列表:                  0-11
离线 CPU 列表:                  12-23
每个核的线程数:                 1
每个座的核数:                   6
座:                             2
NUMA 节点:                      2
厂商 ID:                        GenuineIntel
CPU 系列:                       6
型号:                           63
型号名称:                       Intel(R) Xeon(R) CPU E5-2620 v3 @ 2.40GHz
步进:                           2
CPU MHz:                        2394.458
CPU 最大 MHz:                   2400.0000
CPU 最小 MHz:                   1200.0000
BogoMIPS:                       4788.52
虚拟化:                         VT-x
L1d 缓存:                       384 KiB
L1i 缓存:                       384 KiB
L2 缓存:                        3 MiB
L3 缓存:                        30 MiB
NUMA 节点0 CPU:                 0-5
NUMA 节点1 CPU:                 6-11

备注:

ls /sys/devices/system/node/node0

[root@E01 node1]#  ls /sys/devices/system/node/node0
compact  cpu12  cpu15  cpu2  cpu5     distance   memory0   memory12  memory15  memory3  memory6  memory9   subsystem
cpu0     cpu13  cpu16  cpu3  cpulist  hugepages  memory10  memory13  memory16  memory4  memory7  numastat  uevent
cpu1     cpu14  cpu17  cpu4  cpumap   meminfo    memory11  memory14  memory2   memory5  memory8  power     vmstat

备注:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值