飞腾D3000自带10G网卡调试

1、背景介绍

最近项目中采用了飞腾D3000这款芯片,D3000内部集成了两个10G网卡,可以作为独立网卡使用。

2、飞腾PBF配置

pbf中需要配置网卡,如下,模式为usxgmii,speed强制为10g

3、devicetree配置

项目中采用uboot方式引导,因此需要设备树,网卡节点描述如下:

注意节点中的queue-number只能配置为4,因为D3000自带的网卡最多只支持4个队列。

4、uboot启动参数配置

为了提升网卡性能,在uboot中单独隔出一个核处理网卡中断,这里是隔出了核3

bash 复制代码
setenv bootargs "console=ttyAMA1,115200 earlycon=pl011,0x28009000 root=/dev/nvme0n1p2 net.ifnames=0 biosdevname=0 isolcpus=3 nohz_full=3 rw"

5、麒麟信安系统配置

在麒麟信安系统下进行优化配置,如下

CPU设置为performance模式

bash 复制代码
cpupower frequency-set -g performance

或者用

bash 复制代码
tuned-adm profile throughput-performance

网卡中断亲核性配置

将中断亲核性配置到uboot中隔出来的核3上

QOS优化,调高发送优先级

bash 复制代码
# 打开队列调度 (pfifo_fast或mqprio)
tc qdisc replace dev eth1 root handle 1: prio
# 设置特定优先级
tc filter add dev eth1 protocol ip parent 1: prio 1 u32 match ip dport 8000 0xffff flowid 1:1

关闭负载均衡

bash 复制代码
systemctl disable irqbalance

内核协议栈优化配置

修改/etc/sysctl.conf,增加下图圈出来的内容,配置maxbacklog和网卡接收缓冲区

6、问题

经过上述优化后,实际使用发现D3000自带的网卡还是存在一些问题

udp接收数据时存在缓冲区溢出情况,下图中的overruns就是缓冲区溢出了,包被丢掉

此时UDP带宽不到1Gbps

和飞腾确认,得知D3000自带的10G网卡虽然有四个队列,但是不支持哈希,无法通过RSS分配到不同队列中。ethtool能看到4个队列

但是接收数据时,中断都集中到一个队列上

当CPU占用率高的时候丢包更明显,即使中断核已经隔出来,该核不跑任何程序。其他核也只跑CPU计算程序,不涉及DDR操作

另外,该网卡在目前驱动下,MTU值无法配置为9000,可能是麒麟信安下面驱动适配问题

总的来说,如果对性能有要求的情况下,还是不建议使用D3000自带的10G网卡,通过D3000外接一个网讯1820更靠谱一些。

相关推荐
河北瑾航科技1 小时前
广西水资源遥测终端 广西水利遥测终端 广西用水监测遥测终端 河北瑾航科技遥测终端机HBJH-B01说明书
网络·科技·水文遥测终端机·遥测终端机·广西水资源遥测终端机·广西水利遥测终端·广西用水终端
羑悻的小杀马特2 小时前
轻量跨云·掌控无界:Portainer CE + cpolar 让远程容器运维像点外卖一样简单——免复杂配置,安全直达对应集群
运维·网络·安全·docker·cpolar
愚戏师2 小时前
Python3 Socket 网络编程复习笔记
网络·笔记
降临-max3 小时前
JavaSE---网络编程
java·开发语言·网络·笔记·学习
赖small强3 小时前
【Linux 网络基础】libwebsockets HTTPS 服务端实现机制详解
linux·网络·https·tls·libwebsockets
大白的编程日记.4 小时前
【计算网络学习笔记】MySql的多版本控制MVCC和Read View
网络·笔记·学习·mysql
shmexon5 小时前
上海兆越亮相无锡新能源盛会,以硬核通信科技赋能“能碳未来”
网络·人工智能
Lay_鑫辰6 小时前
西门子诊断-状态和错误位(“轴”工艺对象 V1...3)
服务器·网络·单片机·嵌入式硬件·自动化
车载测试工程师7 小时前
CAPL学习-IP API函数-2
网络·学习·tcp/ip·capl·canoe
Xの哲學7 小时前
Linux 指针工作原理深入解析
linux·服务器·网络·架构·边缘计算