Gazelle是一款高性能
Gazelle优势有:
Gazelle相关具体信息请参见Gazelle使用指南。
[update] name=update baseurl=http://repo.openeuler.org/openEuler-20.03-LTS-SP1/update/$basearch/ enabled=1 gpgcheck=1 gpgkey=http://repo.openeuler.org/openEuler-20.03-LTS-SP1/OS/$basearch/RPM-GPG-KEY-openEuler
yum clean all yum makecache
yum install dpdk yum install libconfig yum install numactl yum install libboundscheck yum install libpcap yum install gazelle
vim /etc/gazelle/lstack.conf
dpdk_args=["reinit-ok", "-l", "1", "--log-level", "lib.eal:6", "--log-level", "lib.cryptodev:5", "--log-level", "user1:6", "--match-allocations", "--file-prefix", "spdk_gazelle"]
use_ltran=0 kni_switch=1 listen_shadow=1 mbuf_pool_size = 1024000 num_cpus="2,3" app_bind_numa=0 main_thread_affinity=1
host_addr="192.168.1.148" mask_addr="255.255.255.0" gateway_addr="192.168.1.1" devices="aa:bb:cc:dd:ee:ff"
请根据实际环境所使用的业务网口信息填写端口信息。
modprobe vfio enable_unsafe_noiommu_mode=1 modprobe vfio-pci ip link set enp3s0 down dpdk-devbind -b vfio-pci enp3s0
dpdk-devbind -s
如果想取消Gazelle对网口的接管,请执行如下命令:
dpdk-devbind -b hinic 0000:07:00.0
在执行启动SPDK的命令时通过LD_PRELOAD的方式,加载Gazelle功能库。
LD_PRELOAD=/usr/lib64/liblstack.so" GAZELLE_BIND_PROCNAME=vhost build/bin/vhost -S /var/tmp -m 0x2
TCMALLOC_MEMFS_MALLOC_PATH=/dev/hugepages/tcmalloc LD_PRELOAD="/usr/lib64/libtcmalloc_minimal.so.4 /usr/lib64/liblstack.so" GAZELLE_BIND_PROCNAME=vhost build/bin/vhost -S /var/tmp/ -m 0x02
Gazelle运行需要单独占CPU,使能Gazelle功能后的vhost进程启动后,绑核方式需要根据实际情况进行调整。
请参考线程绑核将Ceph Client绑核范围修改为:
taskset -pc 4-12 $pid