searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

网卡性能测试调优

2023-12-07 05:56:38
26
0

1、指标定义

带宽(Bandwidth):单条链路最大理论传输速率,单位为Mb/s或Gb/s

吞吐量(Throughput):单位时间内传输的数据量,单位为Mb/s或Gb/s, 吞吐量/带宽为网络使用率

 延迟(Latency):从网络发出请求,到收到远端回应的时间

2、测试工具

当前测试中常用的网卡性能测试工具有iperf和netperf。Iperf可以测试TCP和UDP带宽质量,可以测量最大TCP带宽,具有多种参数和UDP特性。Iperf可以报告带宽,延迟抖动和数据包丢失。Netperf包括Clien和Server端,Server端主要用来实现监听工作,Client端进行测试。

  • iperf常用参数
通用参数:
-f   [k|m|K|M] 分别表示以Kbits, Mbits, KBytes, MBytes显示报告,默认以Mbits为单位
-i   sec 以秒为单位显示报告间隔
-l   缓冲区大小,默认是8KB
-o  将报告和错误信息输出到文件
-p  指定服务器端使用的端口或客户端所连接的端口
-u  使用udp协议 
-w  指定TCP窗口大小,默认是8KB 
client端参数:
-c  服务器的IP地址
-d  同时进行双向传输测试 
-r  单独进行双向传输测试 
-t  测试时间,默认单位为秒
-T  指定ttl值 
server端参数:
-s  表示服务器端

  • netperf常用参数
-l  指定测试的时间长度(秒)
-t  指定进行的测试类型,包括TCP_STREAM,UDP_STREAM,TCP_RR,TCP_CRR,UDP_RR
netserver 启动服务端
-p  指定监听端口
-s  设置本地系统的socket发送与接收缓冲区大小
-S  设置远端系统的socket发送与接收缓冲区大小
-m  设置本地系统发送测试分组的大小
-M  设置远端系统接收测试分组的大小
-D  对本地与远端系统的socket设置TCP_NODELAY选项

3、调优方案

  • CPU设置
开启CPU高性能模式:#cpupower frequency-set -g performance    (也可在BIOS下设置由BIOS控制且为高性能模式)
  • 网卡设置
    关闭自适应中断调节 
    #ethtool -C ethX adaptive-rx off adaptive-tx off (关闭) 
    #ethtool –c ethX (查看状态) 2.设置网卡ring buffer size #ethtool -g ethx (查看预设值) 
    #ethtool -G ethx rx xxx tx xxx (设置成预设值) 3.关闭流量控制 
    # ethtool -a ethx 查看当前流控的设置值 # ethtool -A ethx rx off tx off 关闭流控 
    增大MTU 
    #ifconfig ethx mtu 9000 5
    修改PCIe Max Payload Size(MPS)和Max Read Request Size(MRRS) 
    #lspci -s busid:devid:funcid -vv 
    #setpci -s busid:devid:funcid CAP_EXP+0x8.w=0xXXXX 
    增加传输队列长度 
    #ip link set dev ethX txqueuelen 2000
  • 系统设置
    NUMA绑定
    查看端口对应numa node
    #cat /sys/class/net/enP5p1s0f0/device/numa_node
    查看node0下对应的CPU内核
    #cat /sys/devices/system/node/node0/cpulist
    进行程序与numa的绑定
    #nuamctl --cpunodebind=0 --localalloc netperf xxxx(iperf同样的操作)
    
0条评论
0 / 1000