GMAC网络延时性能优化

基于FT2000+平台的PVE环境下DPDK优化OVS性能 阅读详情
 【写在前面】 飞腾开发者平台是基于飞腾自身强大的技术基础和开放能力,聚合行业内优秀资源而打造的。该平台覆盖了操作系统、算法、数据库、安全、平台工具、虚拟化、存储、网络、固件等多个前沿技术领域,包含了应用使能套件、软件仓库、软件支持、软件适配认证四大板块,旨在共享尖端技术,为开发者提供一个涵盖多领域的开发平台和工具套件。 点击这里开始你的技术升级之旅吧

image.png​​

 本文分享至飞腾开发者平台《GMAC网络延时性能优化》

1 问题介绍及分析

1.1 问题介绍

  问题简介:D2000 板载GMAC网卡,netperf测试网络时延,相较于i350 80μs左右的时延水平。差距接近在5倍左右。

  即:两块GMAC网卡对接,时延在500μs以上。GMAC网卡与i350网卡对接,时延在350μs左右。

  测试情况:

  测试结果:

测试端1测试端2时延(μs)
FT-2000/4 GMACFT-2000/4 GMAC550
D2000 GMAC(netserver)FT-2000+/64 i350(client)350
D2000 GMAC(client)FT-2000+/64 i350(netserver)341
D2000 i350FT-2000+/64 i35082
FT-2000+/64 i350FT-2000+/64 i35077

  性能对比如下图,D2000 gmac 与FT-2000+/64 i350,分别作为netperf的client与server端的时延为341μs和350μs,取两者的平均值:345μs

  未优化前性能对比:

1.2 问题分析

  网络时延:时延是指一个报文或分组从一个网络的一端传送到另一个端所需要的时间。它包括了发送时延,传播时延,处理时延,排队时延。Netperf源码

  测试流程分析:

  1)每一轮传输取开始的时间:

  2)每一轮结束取结束的时间:

  3)将结束时间和开始时间作为入参,调用HIST_add;

  4)HIST_add函数,会将传输次数++,然后算出最大延迟和最小延迟病存储

  5)整个测试结束,调用计算延迟的接口HIST_get_stats

  6)HIST_get_stats会最终算出最大延迟,最小延迟,已经平均延迟

  通过netperf源码获知:网络时延测试就是客户端向服务端发送报文。服务端收到报文,发出回复报文,客户端收到回复报文作为一次传输过程,计时(存储在数组中),作为本次传输的时间。累计在固定时间内,重复以上过程,记录传输过程(有来有回)的次数,以及每次传输对应的时间。从而在所有计时(数组),算出最大时延,最小时延,以及平均时延(所有时间相加/传输次数)。

  针对以上时延测算过程:发送时延(如果是发送方是i350)和传播时延可以忽略不计。主要对接收方(GMAC)处理时延和排队时延的优化。因此针对这一优化目标,主要就以下几个方面进行优化:

2 优化策略

2.1 协议栈参数优化

  以下参数所在文件目录:/proc/sys/net/ipv4/ 以及/proc/sys/net/core/

名称默认值调优值
net.ipv4.tcp_mem178305 237740 356610786432 1048576 1572864
net.ipv4.tcp_wmem4096 16384 41943048192 131072 16777216
net.ipv4.tcp_rmem4096 87380 629145632768 131072 16777216
net.ipv4.tcp_syn_retries61
net.core.somaxconn12816384

  经过测试,以上调优手段,对时延影响不大。

2.2 Tcp分段设置

  原理:当一个系统需要通过网络发送一大段数据时,计算机需要将这段数据拆分为多个长度较短的数据,以便这些数据能够通过网络中所有的网络设备,这个过程被称作分段。TCP分段卸载将TCP的分片运算(如将要发送的1M字节的数据拆分为MTU大小的包)交给网卡处理,无需协议栈参与,从而降低CPU的计算量和中断频率。虽然此种修改方式能够提高带宽。但是这样势必会增加时延,所以建议关闭。该部分详细内容可以参考:http://t.zoukankan.com/huaweicloud-p-11861181.html

  修改方式:使用ethtool工具关闭网卡和驱动对TSO(TCP Segmentation Offload)的支持。如下命令中的参数“$eth”为待调整配置的网卡设备名称,如eth0,eth1等。

# ethtool -K $eth tso off

  

经过测试,以上调优手段,对时延影响不大。

2.3 中断聚合参数调整

  原理:中断聚合特性允许网卡收到报文之后不立即产生中断,而是等待一小段时间有更多的报文到达之后再产生中断,这样就能让CPU一次中断处理多个报文,减少开销。

  两种修改方式:

  1)使用ethtool -C $eth方法调整中断聚合参数。其中参数“$eth”为待调整配置的网卡设备名称,如eth0,eth1等。

# ethtool -C eth3 adaptive-rx off adaptive-tx off rx-usecs N rx-frames N tx-usecs N tx-frames N

  为了确保使用静态值,需禁用自适应调节,关闭Adaptive RX和Adaptive TX。

  rx-usecs:设置接收中断延时的时间。

  tx-usecs:设置发送中断延时的时间。

  rx-frames:产生中断之前接收的数据包数量。

  tx-frames:产生中断之前发送的数据包数量。

  这4个参数设置N的数值越大,中断越少。带宽越大,时延越大。

  因此建议将以上4个设置N数字变小。从而降低时延。但是gmac网卡暂不支持ethtool此种设置方式。

  关于调整中断聚合的详细内容可以参考:https://www.sohu.com/a/352508214_655101

  2)通过修改内核代码的方式

  通过修改源码中表征中断聚合参数的值,控制中断产生的频率,为降低时延,我们作一下修改:

修改项目修改前修改后
#define MAX_DMA_RIWT0xff0x20

修改完成,重新编译内核源码,详细测试结果见第三章。

3 测试结果

  经过2.4 章中,中断聚合优化以后的测试:

  测试拓扑:

  表 FT-2000+/64(i350 client)\<-\>D2000(gmac server)

测试次数时延(μs)
193.37
293.03
393.04
493.69
594.80
平均值93.59

  表 FT-2000+/64(i350 server)\<-\>D2000(gmac client)

测试次数时延(μs)
196.57
297.91
395.69
497.90
594.19
平均值96.45

  测试结论:netperf时延测试,gmac作为server端和client端,时延分别在93.59和96.45左右,取两者的平均值:95μs左右

4 测试结论

  经过中断聚合参数调整以后,前后网络时延性能对比:

  测试结论:优化后,gmac无论作为netperf的server端或者作为client时,性能提升接近4倍左右,接近两块intel i350网卡互连时时延的水平(80μs左右)。

推荐阅读

欢迎广大开发者来飞腾开发者平台获取更多前沿技术文档及资料

如开发者在使用飞腾产品有任何问题可通过在线工单联系我们


版权所有。飞腾信息技术有限公司 2023。保留所有权利。

未经本公司同意,任何单位、公司或个人不得擅自复制,翻译,摘抄本文档内容的部分或全部,不得以任何方式或途径进行传播和宣传。

商标声明

Phytium和其他飞腾商标均为飞腾信息技术有限公司的商标。

本文档提及的其他所有商标或注册商标,由各自的所有人拥有。

注意

本文档的内容视为飞腾的保密信息,您应当严格遵守保密任务;未经飞腾事先书面同意,您不得向任何第三方披露本文档内容或提供给任何第三方使用。

由于产品版本升级或其他原因,本文档内容会不定期进行更新。除非另有约定,本文档仅作为使用指导,飞腾在现有技术的基础上尽最大努力提供相应的介绍及操作指引,但飞腾在此明确声明对本文档内容的准确性、完整性、适用性、可靠性的等不作任何明示或暗示的保证。

本文档中所有内容,包括但不限于图片、架构设计、页面布局、文字描述,均由飞腾和/或其关联公司依法拥有其知识产权,包括但不限于商标权、专利权、著作权等。非经飞腾和/或其关联公司书面同意,任何人不得擅自使用、修改,复制上述内容。

服务器测试之网卡性能调优 nvidia下载mlnx_ofed:https://network.nvidia.com/products/infiniband-drivers/linux/mlnx_ofed/intel下载驱动固件:https://www.intel.com/content/www/us/en/download-center/home.html。然而,你可以根据实际情况手动调整中断相关配置。老生常谈了,一些性能相关的设置项打开,节能的关闭,虚拟化相关的VMX/SR-IOV/IOMMU最好也都关掉。 阅读详情

相关推荐

GMAC控制器延迟线原理详解:从RGMII信号完整性到泰山派以太网性能优化

本文深入解析了GMAC控制器中延迟线(Delayline)的工作原理,重点阐述了其在RGMII接口时序校准中的关键作用。通过补偿PCB走线引入的信号延迟差异,延迟线能有效解决千兆以太网信号完整性问题。文章以Rockchip平台(如泰山派开发板)为例,详细介绍了如何通过眼图扫描和参数优化来配置tx_delay与rx_delay,从而确保以太网在高速模式下的稳定与高性能。

embedding5hiker的博客 884

【华为云技术分享】Nginx应用调优案例

1问题背景 nginx的应用程序移植到TaiShan服务器上,发现业务吞吐量没有达到硬件预期,需要做相应调优。 2原因分析 l网卡配置 该应用场景下网络吞吐量大,网卡的配置能对性能提升起到很大的作用。 l操作系统参数配置 在更换操作系统后,原来的一些调优措施需要重新定制。 l应用程序调优 从x86切换到arm之后,可以做一些代码层面、编译选项上的调优。 3...

华为云官方博客 5427

RK3568/RK3588 + YT 9215交换机芯片,MAC TO MAC 调试记录

原来的方案是rk3568 gmac 直接接phy,phy 接 switch 芯片,只是把交换芯片当交换用,驱动方面基本不用开发,但是要做vlan 那么必须涉及交换芯片的开发。选择裕太微有两个方面的原因:1.国产化替代2.可获得原厂技术支持3.目前已经完成 两个gmac 口交换芯片的配置,实现vlan,内部交换,两个光口可正常通信。

Nyiragongo的博客 1万+

网卡中断聚合

查询物理网卡的中断聚合状态: ethtool -c ethxx rx-usecs和rx-frames起主要作用,它们分别是指多少微秒产生一个中断和多少个报文产生一个中断。建议对吞吐量要求高的场景,可以将rx-usecs和rx-frames的值设置较大;对延时要求高的场景,rx-usecs和rx-frames的值设置较小。 修改物理网卡中断聚合参数: ethtool -C ethxx rx-usecs value ethtool -C ethxx rx-frames value ...

qiongtianliuyun的博客 3911

TB6600驱动器共阴共阳接法傻傻分不清?一张图搞定STM32与42步进电机的接线避坑指南

本文详细解析了TB6600驱动器共阴共阳接法的本质区别,提供了STM32与42步进电机的高效连接方案。通过实际案例和接线图示,帮助读者避免常见错误,确保驱动器与MCU的安全连接,提升项目稳定性。

weixin_28710999的博客 242

HIDL概述

HIDL背景 Treble 是 Google Android 团队的一项重大项目,意在 Android 操作系统框架在架构方面的一项重大改变,旨在让制造商以更低的成本更轻松、更快速地将设备更新到新版 Android 系统。Android 7.x 及更早版本中没有正式的供应商接口,因此设备制造商必须更新大量 Android 代码才能将设备更新到新版 Android 系统: 图1 Treble ...

u013357557的专栏 2万+

T527 RTL8211F_JL2101B-N040C 以太网PHY调试

T527 RTL8211F_JL2101B-N040C 以太网PHY调试

CATTLE_L的博客 1804

DSP28335 ADC模块实战:从寄存器配置到精准数据采集(附代码详解)

本文详细解析DSP28335的ADC模块配置与数据采集实战,涵盖寄存器设置、采样窗口优化、中断处理及代码实现。重点解决ADC精度问题,如采样窗口不足导致数据偏差,提供完整代码示例和调试技巧,助力工程师实现精准数据采集。

kkk56的博客 862

GMACtxrxdelay动态调整补丁:解决网络通信难题的一大利器

GMACtxrxdelay动态调整补丁:解决网络通信难题的一大利器 去发现同类优质开源项目:https://gitcode.com/ 项目介绍 在网络通信领域,延迟问题一直是影响用户体验的关键因素之一。GMACtxrxdelay动态调整补丁,针对RK系列PHY芯片在网络通信过程中出现的tx/rx delay问题,提供了一套有效的修复方案。该补丁能够解决设备因延迟问题导致的网络连接异常,提升通信稳定...

gitblog_06785的博客 1009

【智慧城市】GIS数据获取-获取道路/水路数据

【GIS数据获取】获取道路/水路数据

qq_16599281的博客 4749

电动汽车充电设备标准化设计方案:电气原理图

80kW一体式一机一枪充电机电气原理 主电路拓扑见图1,配置1个250A直流充电连接装置,提供4个充电模块安装位置,根据充电功率需求可选配2~4个20kW充电模块。内置直流电能表和计费控制单元,实现计量计费和充电控制功能。 图1 80kW一体式一机一枪充电机主电路拓扑 ...

santirenpc的博客 1万+

飞腾D2000网卡经裕太PHY后出光网调试指导

飞腾D2000网卡经裕太8521后转光模块输出,示意框图如下。

无知的我 3836

北航机器学习2020-2021秋季学期期末试题回忆

北航机器学习2020-2021秋季学习期末试题回忆 fanjn, zhangyy, yuanq, wanggq, weixy, anh, wangyy, zhouxy, likc1 【注:考试使用纯白的A3答题纸,考试时间2h,各位同学可以自行模拟考试】 此试卷1-8题为10分,第9题为20分 1.2077年人类发射近地卫星,一共发射800颗,根据大小和轨道远近,有着不同的宜居条件(+表示宜居),有以下表格(数字八九不离十,其他属性什么的原题就是交替的) 数量 大小 轨道 是否宜居 30

weixin_45262065的博客 7608

基于飞腾CPU的高性能编译器PhyGCC的安装及配置说明

PhyGCC 10.3.1 兼容主流 GCC,针对飞腾的FTC66x 微架构做了专门优化,集成了优化过的基础库,是一款Linux 下深度适配飞腾CPU 的高性能编译器,通过飞腾软件开发者平台发布二进制包(https://service.phytium.com.cn/developer),支持AArch64架构。

developersupport的博客 2054

STM32CubeMX Nucleo F767ZI 教程(1)

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录系列文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结 前言 官网上买了个NUCLEO F767ZI 的开发板,144引脚的芯片,https://www.st.com/content/st_com/zh/products/evaluation-tools/prod

fafuwxm 2026

120、NPU的Mythic M1076:模拟存算一体NPU

这篇文章分享了作者调试Mythic M1076模拟存算一体NPU的实战经验,主要包含以下要点: 硬件设计陷阱:参考电压输入必须使用低ESR电容,普通贴片电容会导致模拟计算阵列工作异常。 核心技术原理: 采用真正的存算一体架构,将权重存储为模拟电压 使用浮栅晶体管存储权重,通过电流叠加实现乘法运算 包含108个计算单元阵列(Tile),每个256×256规模 使用注意事项: 编程模型特殊,需要依赖SDK自动映射网络层 存在6-8位有效精度限制,需用量化感知训练 功耗特性独特,静态偏置电流占主要功耗 调试手段有

m0_50546716的博客 122

机器硬件调优

grub2-mkconfig -o /boot/grub2/grub.cfg (查下具体grub.cfg文件在哪里,不同版本有区别)将 SELINUX=enforcing 改为 SELINUX=disabled。vim /etc/selinux/config 文件。关闭网卡的中断聚合,降低网卡处理消息的延时。关闭 SELinux。

m0_38133358的博客 391

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

CVL网卡的ADQ特性在SPDK的NVMF测试中的应用实例 - 下篇

作者简介万群,Intel存储软件工程师 主要从事SPDK软件测试工作目录一. 系统配置(包括target端和host端)二. NVME/TCP的ADQ特性在target端的配置实例三....

weixin_37097605的博客 1232

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

鲲鹏性能优化十板斧(三)——网络子系统性能调优

1网络子系统性能调优 3.1调优简介 3.2常用性能监测工具 3.3优化方法 1.1调优简介 调优思路 本章主要是围绕优化网卡性能和利用网卡的能力分担CPU的压力来提升性能。在高并发的业务场景下,推荐使用两块网卡,减少跨片内存访问的次数。即将两块网卡分别绑定在服务器的不同CPU上,每个CPU只处理对应的网卡数据。高并发场景还可以为网卡选择x16的PCIE卡。 高并发场...

华为云官方博客 4543

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

ethtool 命令详解

命令描述: ethtool 是用于查询及设置网卡参数的命令。 使用概要: ethtool ethx       //查询ethx网口基本设置,其中 x 是对应网卡的编号,如eth0、eth1等等 ethtool –h        //显示ethtool的命令帮助(help) ethtool –i ethX    //查询ethX网口的相关信息  ethtool –

evenness的专栏 3万+

ethtool 显示和更改网卡设置的工具

1.显示网络端口设置功能 ethtool[interface] 2.设置网卡的协商模式 ethtool[-parmeter]DEVNAME ethtool ethX 显示网卡的 ethtool -a ethX 显示网卡的暂停信息 ethtool -A ethX [autoneg on|off][rx on|off][tx on|off] 设置网卡的暂停参数 ethtool -c e...

TeBieChi的专栏 879

linux 网络命令ethtool与mii-tool及nm-tool

1、ethtool  Ethtool是Linux下用于查询及设置网卡参数的命令。  概要:ethtool ethX //查询ethX网口基本设置  ethtool –h //显示ethtool的命令帮助(help)  ethtool –i ethX //查询ethX网口的相关信息   ethtool –d ethX //查询ethX网口注册性信息  ethtool –r et...

weixin_34146410的博客 496

10GE网卡终端聚合参数

网卡中断聚合可以提高中断处理效率,需要自行进行编译网卡驱动,然后重新加载。 加载命令如下: modprobe ixgbe InterruptThrottleRate=4000

badman250的专栏 3万+

Calico 网络插件实战

集群外部主机可以访问集群内部应用集群内部应用也可以访问集群外部主机各个namespace之间没有做任何的隔离策略如果希望在 IP 地址或端口层面控制网络流量, 考虑使用 Kubernetes 网络策略(NetworkPolicy)。NetworkPolicy 是一种以应用为中心的结构,允许你设置如何允许Pod与网络上的各类网络“实体” 通信。NetworkPolicy 适用于一端或两端与 Pod 的连接,与其他连接无关。**提示:**网络策略通过网络插件来实现。

weixin_63581562的博客 399

GitHub 热榜项目:日榜(2026-11-07)

给编码智能体配技能的项目最热:cloudflare/security-audit-skill 把审计拆成六阶段并输出可验证 JSON,新增 2,548 星;mattpocock/skills 把工程技能放进 .agents 目录,新增 2,070 星。Web 应用框架也有四个项目集中上榜,以 react/react 为代表。

u130130的博客 351

ThinkPHP+UniApp 多端圈子系统如何设计:论坛内容、实时会话与交易模块的技术实现!

本文介绍基于ThinkPHP与UniApp的多端兴趣圈子系统设计,实现小程序、H5、App三端统一账号与数据同步。系统采用模块化架构,支持圈子管理、论坛互动、实时会话与可选交易功能,通过统一消息中心复用通知与会话通道,保障跨端一致性。核心亮点包括权限清晰的圈主与平台管理分离、内容核验前置、数据冷热分离及缓存优化,确保系统可扩展、易维护,适用于同好社群、本地团体等场景。

2603_96017077的博客 148
上一篇: 基于飞腾腾锐D2000的DPDK适配及测试指南
下一篇: 飞腾腾云S2500基于LVS负载均衡模式下的Nginx性能方案
飞腾开发者
博客等级 码龄3年 728粉丝 43原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值