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同样的操作)