首先升级Centos7内核版本并安装对应开发包,参考
https://blog.csdn.net/weixin_42024824/article/details/116700672
必须升级GCC版本
yum install -y centos-release-scl
yum install -y devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
scl enable devtoolset-9 bash
gcc -v
安装f-stack
yum install -y git gcc openssl-devel bc numactl-devel python
git clone https://github.com/F-Stack/f-stack.git /data/f-stack
cd /data/f-stack/dpdk
meson -Denable_kmods=true build
ninja -C build
ninja -C build install
vi /etc/ld.so.conf
/usr/lib64 #加入此行,编译生成的库路径
ldconfig
# Upgrade pkg-config while version < 0.28
cd /data
wget https://pkg-config.freedesktop.org/releases/pkg-config-0.29.2.tar.gz
tar xzvf pkg-config-0.29.2.tar.gz
cd pkg-config-0.29.2
./configure --with-internal-glib
make
make install
mv /usr/bin/pkg-config /usr/bin/pkg-config.bak
ln -s /usr/local/bin/pkg-config /usr/bin/pkg-config
# Compile f-stack lib
export FF_PATH=/data/f-stack
export PKG_CONFIG_PATH=/usr/lib64/pkgconfig:/usr/local/lib64/pkgconfig:/usr/lib/pkgconfig
cd /data/f-stack/lib
make && make install
# Compile Nginx
cd ../app/nginx-1.16.1
./configure --prefix=/usr/local/nginx_fstack --with-ff_module
make
make install
# Compile Redis
cd ../redis-5.0.5
make
# Compile f-stack tools
cd ../../tools
make
# Compile helloworld examples
cd ../examples
make
启动
# Set hugepage
# single-node system
echo 1024 > /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages
# or NUMA
echo 1024 > /sys/devices/system/node/node0/hugepages/hugepages-2048kB/nr_hugepages
echo 1024 > /sys/devices/system/node/node1/hugepages/hugepages-2048kB/nr_hugepages
# Using Hugepage with the DPDK
mkdir /mnt/huge
mount -t hugetlbfs nodev /mnt/huge
# Close ASLR; it is necessary in multiple process
echo 0 > /proc/sys/kernel/randomize_va_space
# Offload NIC
modprobe uio
insmod /data/f-stack/dpdk/build/kernel/linux/igb_uio/igb_uio.ko
insmod /data/f-stack/dpdk/build/kernel/linux/kni/rte_kni.ko carrier=on # carrier=on is necessary, otherwise need to be up `veth0` via `echo 1 > /sys/class/net/veth0/carrier`
python dpdk-devbind.py --status #/data/f-stack/dpdk/usertools/dpdk-devbind.py
ifconfig eth0 down
python dpdk-devbind.py --bind=igb_uio eth0 # assuming that use 10GE NIC and eth0
# test example
cd /data/f-stack
./start.sh