什么是网卡调优?
A
网卡调优是根据网卡硬件、驱动以及内核态运行特性而对网卡的对应参数或运行模式进行测试与调整,其类型中包括参数调整,模式切换,性能测试等。
Q
常见的测试工具有哪些?
A
专用的网络测试工具有iperf2/3,netperf,qperf等。上述测试工具能够测试TCP/UDP带宽,其中,iperf2支持多线程,iperf3支持多stream,qperf支持RDMA。除上述网络专用测试工具外,也可使用sysbench进行数据库相关网络传输测试。
Q
常见的调优工具有哪些?
A
网卡调优工具中最常用的是ethtool。ethtool是Linux中的网络管理软件,能够获取网卡信息,进行网卡诊断,修改网卡数据存储与内核态运行参数,在进行调优时可以根据获取的信息结合硬件与软件特性进行对应参数的修改。
Q
ethtool的运作原理是什么?
A
ethtool的运作原理如下图所示,其为横跨用户态,内核态和驱动的过程。
Q
网卡调优的策略有哪些?
A
对于吞吐量大,收发包频繁的业务,可以通过修改内存相关参数(如队列长度,队列数量,MTU大小,协议栈大小)进行调优 ;对于CPU算力充足的情况,可以通过增大线程数,队列绑核等方式增加运行效率;而在高负担,CPU负担过大的场景下,可以通过修改中断散列,中断聚合参数,卸载和禁用功能等方式减轻CPU负担。
Q
如何对网卡参数进行永久修改?
A
使用ethtool等管理工具进行的修改会在主机重启后重置,若需进行永久改变时需要修改/etc/sysconf/network-scripts/ifcfg-${网卡号}。
Q
除了对网卡本身进行调优,还有哪些与网卡相关的调优方式?
A
与网卡相关的网络调优方式有RDMA和DPDK。RDMA是一种从一台主机的内存直接访问另一台主机内存的技术,包括IB,RoCE和iWARP三种实现协议,当前鲲鹏服务器主要使用RoCE方法。RDMA的实现需要交换机和网卡进行相关技术的支持。DPDK是一种在用户态对网络报文收发进行处理的技术,该技术完全跳过内核态,因此不存在中断消耗。DPDK需要网卡脱离内核态运行在用户态。
Q
网卡如何选择绑核?
A
网卡绑核应尽量选择同NUMA的多个Clusters,队列应尽量平均分配给每一个Clusters,同时应该禁用irqbalance自动中断分配服务。
Q
服务器其他硬件对网卡有何影响?
A
当测试数据出现较大波动或难以提升时,应该尝试关闭其它硬件的动态分配服务,如CPU的动态调频,SMMU等。
Q
对于多网卡服务器如何选择网卡?
A
根据业务特性选择合适的网卡。如业务对网卡光口或电口是否有需求,对网卡的速率是否有需求,是否需要自协商等。