Mellanox 的性能问题

问题描述

尝试使用 IXIA 生成的流量对 Mellanox NIC 进行性能测试。10G 电缆连接流量生成器和 DUT 系统。使用 IXIA 流量生成器工具以 10 G 发送流量,但在 IXIA 接收的反向流量吞吐量仅为 2G .遵循https://fast.dpdk.org/doc/perf/DPDK_20_11_Mellanox_NIC_performance_report.pdf中描述的性能优化步骤。请提供解决问题的建议。

enter code here
ethtool -A interface1 rx off tx off
ethtool -a interface1
ethtool -a interface2
sysctl -w vm.zone_reclaim_mode=0
sysctl -w vm.swappiness=0
echo 0,1,2,3,4,5,6,7 > /sys/class/net/enp3s0f0/qos/prio2buffer
echo 250000,0 > /sys/class/net/enp3s0f0/qos/buffer_size
IRQBALANCE_BANNED_cpuS=$LOCAL_NUMA_cpuMAP irqbalance --oneshot
cat /sys/class/net/interface1/qos/prio2buffer
cat /sys/class/net/interface1/qos/buffer_size
systemctl stop irqbalance
echo -1 > /proc/sys/kernel/sched_rt_runtime_us
#setpci -s 03:00.0 68.w=3900
#setpci -s 03:00.1 68.w=3900
echo 1024 > /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages
##mlxconfig -d 03:00.0 q | grep CQE
echo -e "\n\n*************(IF SET TO AGGRESSIVE PRESS n ELSE PRESS y)*************\n"
#mlxconfig -d 03:00.0 set CQE_COMPRESSION=1
##mlxconfig -d 03:00.1 q | grep CQE
echo -e "\n\n*************(IF SET TO AGGRESSIVE PRESS n ELSE PRESS y)*************\n" 
#mlxconfig -d 03:00.1 set CQE_COMPRESSION=1

解决方法

我建议调整网络参数并了解它们是否可以进一步提供帮助

  • /proc/interrupts
  • /proc/net/softnet_stat
  • netdev_budget

下面的文章有很多关于网络堆栈性能调优的细节 https://access.redhat.com/articles/1391433