速来报名!AICon北京站鸿蒙专场~ 了解详情
写点什么

鲲鹏应用创新大赛 2023 金奖解读:openEuler 助力北大团队创新改进,网络性能再提升

  • 2023-11-17
    北京
  • 本文字数:3896 字

    阅读完需:约 13 分钟

鲲鹏应用创新大赛 2023 金奖解读:openEuler 助力北大团队创新改进,网络性能再提升

2010 年代掀起的移动计算革命开启了智能手机全民普及的时代,对社会产生了深远的影响。在人均拥有多部智能设备的今天,各行业都在谋求数字化转型,以适应这一全新的技术图景。数字转型的浪潮反过来进一步推动着 IT 产业向着开源、创新和多样化的方向发展,正是在这一背景下,鲲鹏计算产业开始展露头角。如今,鲲鹏计算产业已经形成了包括鲲鹏社区、openEuler 操作系统、openGauss 数据库等技术生态在内的跨领域、跨行业技术体系,并在广大合作伙伴、开发者与用户群体的推动下,成为 IT 行业开源创新的重要源泉。

 

鼓励开发者参与鲲鹏社区,与社区共同成长,是鲲鹏计算产业高速成长的秘诀。在鲲鹏社区丰富多彩的开发者使能活动中,鲲鹏应用创新大赛是最受关注、参与度最高的活动之一。鲲鹏应用创新大赛是面向全国开发者的顶级赛事,旨在激发行业应用创新、加速产业融合、促进人才培养,吸引全产业开发者共同打造鲲鹏全栈解决方案。日前,第四届鲲鹏应用创新大赛全国总决赛在四川成都圆满落幕。经过 6 个月的激烈角逐,大赛最终从 1600 多支参赛队伍中评选出 13 个金奖、16 个银奖和 19 个铜奖。在大赛高校赛事的“openEuler 开源应用创新”赛道中,来自北京大学的“好像有点不”团队凭借基于 openEuler 操作系统网络开源项目的 Cubic 算法实现改进作品,赢得了专家评委的认可。


一、金奖作品青胜于蓝:算法小升级,收获大回报

(一)项目背景:Reno 算法缺陷,导致弱网性能不足


在网络数据传输过程中,数据收发两端经常会出现收发速率不同步的问题,这时就需要通过数据拥塞控制算法来解决问题,拥塞控制算法也是网络协议栈中的关键组件。作为支持嵌入式设备的跨平台操作系统,openEuler 一直使用开源社区自主研发的 Gazelle 用户态网络协议栈。该协议栈使用了轻量级网络传输协议 LwIP 来保障极高的 IO 性能和较低的性能开销,能够显著提升网络传输性能。然而,LwIP 使用的拥塞控制算法 Reno 存在一定缺陷,在网络条件较差,延迟变化剧烈或丢包频繁时,Reno 算法常常无法准确识别和适应拥塞情况,导致性能下降。

 

针对这一问题,北京大学参赛团队选择了对 LwIP 协议进行改进,在已有 TCP 协议栈的基础上实现业界主流的 Cubic 拥塞控制算法,提升高延迟复杂网络环境下的数据传输效率。


(二)整体设计:Cubic 算法接入 LwIP,升级网络协议栈


北京大学团队的整体思路是将拥塞算法从 LwIP 的 TCP 处理流程中解耦,从而将 Reno 替换为 Cubic 算法。团队为协议定义了拥塞控制算法接口,并在 TCP 控制块和描述 TCP 数据段的结构体中添加了新字段来帮助实现拥塞算法,最后调整了 TCP 处理流程中的拥塞控制代码,从而将 Cubic 算法接入了 LwIP 的 TCP 协议。

(三)算法实现:Cubic + SACK 双管齐下提升弱网性能


相比 LwIP 当前使用的 Reno 算法,Cubic 算法使用了一个三次函数作为窗口调整的增长曲线,在网络数据拥塞发生后恢复速度更快,且 Cubic 算法的窗口增长函数仅取决于发生拥塞事件的时间,完全独立于网络延迟,因此更容易应对延迟剧烈变化的场景。

 

团队参照了 Cubic 算法论文中的描述和 Linux 6.1 内核中的 Cubic 算法实现编写了具体的代码,并在此基础上加入了多项优化,避免拥塞窗口增长过快导致大量丢包。

 

同时,团队发现 LwIP 只实现了接收端的 SACK 机制,导致一定程度的虚假数据重新传输现象,使丢包数据不断重新发送。

 


为此,团队添加了发送端的 SACK 处理逻辑,并维护了 TCP 连接的 RTT 值,禁止刚刚发送的 TCP 报文重传,以解决上述问题。


(四)测试结果:弱网环境收益惊人


团队分别测试了 MySQL 场景与 TCP 数据传输场景下新算法的性能表现。经过测试发现,MySQL 场景下,Cubic 版本的 Gazelle 获得了 14% 的性能提升;在高延迟(RTT=50ms~200ms)的 TCP 场景下,Cubic 算法与 SACK 优化叠加,可以获得最高接近 3 倍的性能提升。其中,SACK 优化在高延迟场景下有着非常大的收益,相比无 SACK 时性能提升接近 50%。

 

虽然数据传输效率大幅提升,但新算法的 CPU 开销增长非常微小,相比网络程序整体而言可以忽略不计,内存开销增长也只增加 0.53% 以内,整体可控。

 

总之,北京大学团队的网络协议改进方案就是凭借独创的优化路径、优异的性能表现和极低的实现成本,最终赢得了评委的一致好评,夺得了 openEuler 开源创新赛道的金奖荣誉。


(五)应用场景预测:从物联网到大模型,小升级带来大回报

 

北京大学团队的参赛项目虽然只是对 openEuler 社区用户态网络协议栈创新项目 Gazelle 的一个小改进,但在实践场景中,考虑到网络传输延迟较高的情况并不少见,这一改进可能在多个维度为用户带来明显的性能改进和体验提升。

 

在移动互联网和物联网应用中,由于无线传输技术的先天不足,终端设备经常面临网络条件劣化导致的延迟剧烈波动问题。北京大学团队的方案可以在这类环境下大幅提升数据传输效率,显著减少用户文件下载、视频播放缓冲和物联网设备数据上报等应用的等待时间。

 

在云计算领域,跨多个地区提供云服务的厂商需要频繁对不同地区的数据中心进行大规模数据同步,但在数据传输跨越较长物理距离、多个国家或地区、多个运营商时,这种同步操作也很难保持较低的延迟水平。而基于 Cubic 算法和 SLACK 优化的新方案可以在此类场景中发挥明显优势,通过减少数据重复传输、优化拥塞恢复速度等改进明显缩短数据同步时间、减少流量开销,帮助企业降本增效。

 

新方案在大模型方面也有应用潜力。随着大模型对基础算力设施的要求提升,很多企业需要充分利用分布在多个物理区域的计算集群来完成大模型训练等任务。这些集群需要频繁通信、交互数据来实现协作,新方案同样能够帮助它们在网络条件不佳的情况下保持传输效率,消除高延迟场景下的数据互传瓶颈。


二、以开源促创新,开发者与鲲鹏社区互利共赢

 

北京大学团队的参赛项目之所以能够获得评委认可,夺得鲲鹏应用创新大赛的金奖,一方面是因为团队勇于探索创新,擅长发现问题、解决问题,另一方面则是因为 openEuler 社区的丰硕开源成果为团队提供了技术底蕴和创意源泉。该项目是在 openEuler 社区 Gazelle 用户态网络协议栈项目的基础上改进而来,而 Gazelle 则是社区众多高质量开源项目中的佼佼者,为 openEuler 操作系统的强大网络性能表现提供了重要支撑。北京大学团队站在优秀先行者的肩膀上,自然可以青出于蓝,更进一步。

 

北京大学团队的金奖方案并非孤例。事实上,本届鲲鹏应用创新大赛总决赛入围的 102 个作品中,有 80% 是运行在 openEuler 系统上,72% 使用了鲲鹏开发者套件 DevKit 代码迁移和性能分析工具,65% 基于鲲鹏应用使能套件 BoostKit 进行了性能优化。正是在鲲鹏社区“硬件开放、软件开源、使能伙伴、发展人才”的生态策略引领下,越来越多的优秀开发者加入了鲲鹏社区的大家庭,像北京大学参赛团队一样成为社区开源项目的贡献者、改进者。

 

以 openEuler 开源社区为例,目前社区已聚集超过 205 万全球用户,合并 PR 请求近 14 万,Issue 数量超过 7 万,评审意见超过 220 万,代码仓库超过 10700 个。社区平均每月新增 10 个创新项目,在服务器、云原生/边缘、嵌入式场景全方位协同使能。与此同时,openEuler 已有超过 1200 家成员单位,在他们的推动下,社区的开源项目在关系国计民生的十大关键行业中广泛应用,用户包括电网、银行、运营商、航空等重要部门和企业,产生了显著的商业和社会价值。这些实践落地项目反过来又为社区的开源贡献者带来的丰厚的回报,极大促进了他们推动技术进步的积极性,为开源社区的持续发展带来了源源不断的创新活力。

 

在 IT 行业,创新技术的发展高度依赖健康、繁荣的开源生态,包括 openEuler 等开源社区在内,鲲鹏计算产业正在建立开源生态的良性价值循环。在这一体系中,开发者、企业、用户通力协作,向着共赢数字时代的相同目标努力前进。


三、生态繁荣成长,鲲鹏产业迈向数智未来


星星之火,可以燎原。一个又一个像北京大学团队金奖项目这样的进步累积起来,为鲲鹏计算产业构筑了生态繁荣的根基。从硬件到软件,从基础设施到应用开发,鲲鹏生态正在广大合作伙伴、开发者和用户的共同努力下飞速成长,日新月异。

 

创新生态的积累是量变到质变的过程。北京大学团队的金奖方案如果仅仅是一个独立的开源项目改进,很可能少人问津、难以创造更大的社会价值。但正因为是鲲鹏生态的迭代创新成果,它不仅赢得了鲲鹏应用创新大赛的殊荣,未来还将有广阔的应用天地。由于 openEuler 操作系统在移动互联网、物联网、云计算、人工智能领域都有大量落地场景和机遇,这一金奖方案可以在这些场景中充分发挥优势,创造可观的贡献。与其类似,本届鲲鹏应用创新大赛的近 50 个获奖作品,以及更多优秀项目都有望在鲲鹏生态中找到自己发光发热的位置,向着市场和商业应用的方向开花结果。

 

目前,鲲鹏产业已经与 4500 多家合作伙伴孵化了超过 13500 个解决方案,行业落地持续加速。过去四年来,鲲鹏生态先后发起了鲲鹏开发者计划、鲲鹏展翅伙伴计划、众智计划、优才计划等社区支持项目,这些项目与鲲鹏应用创新大赛等社区活动一起,帮助来自企业、科研、高校领域的开发者提升产品创新能力、产品质量控制能力、营销拓展能力,并打造更优质的产品服务体系。通过繁荣活跃的社区赋能,鲲鹏在处理器、操作系统、数据库等基础软硬件领域,以及数字孪生、AR/VR 等创新领域持续开拓,使各个方向的开发者与企业形成合力,在社区活动和支持项目的帮助下加快创新转化,构建全栈创新的计算产业生态系统,共筑各行业的数字根基。北京大学的金奖方案只是这一浪潮中的一个小小缩影,未来,我们将见证鲲鹏在更多广阔的天地展翅翱翔,成为全球领先的数字社区与生态,携手千百万开发者与合作伙伴共创美好的数智未来。

 

2023-11-17 10:286115
用户头像
鲁冬雪 GMI Cloud China Marketing Manager

发布了 362 篇内容, 共 264.8 次阅读, 收获喜欢 294 次。

关注

评论

发布
暂无评论
发现更多内容

软件测试学习笔记丨闭包与装饰器

测试人

软件测试

谷歌SEO优化技巧:外贸独立站关键词的筛选与挖掘

九凌网络

重磅!云智慧推出轻量智能化服务管理平台轻帆云

云智慧AIOps社区

ITSM ITSM软件 ITSM解决方案 工单管理系统 工单管理

如何优化UI自动化测试流程?

测吧(北京)科技有限公司

测试

服务化UI页面结构树解析:优化UI自动化测试的实践探索

测吧(北京)科技有限公司

测试

做市机器人招代理

区块链技术

IT外包怎样帮助企业控制成本?

Ogcloud

IT IT外包 IT外包公司 IT外包服务 IT外包企业

谷歌SEO外链怎么做:初学者入门指南

九凌网络

淘系API接口推荐:淘宝商品描述信息数据接口

tbapi

淘宝API接口 淘宝商品描述接口

GaussDB(DWS)运维利刃:TopSQL工具解析

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 华为云GaussDB(DWS)

数字先锋| 望闻问切更有“数”!

天翼云开发者社区

云计算 云平台

俄罗斯淘宝代购系统丨淘宝代购集运系统PHP

tbapi

淘宝代购系统 淘宝代购集运系统 俄罗斯淘宝代购系统

缓存有大key?你得知道的一些手段

京东零售技术

Java 缓存 后端

⏳大咖直播预告 | 数据库系统访问控制『面面观』

KaiwuDB

数据库

中文Navicat Premium 15 for mac破解安装包

iMac小白

亚马逊云科技在中国区域推出Amazon Network Firewall

财见

全球IT外包的趋势与发展

Ogcloud

外包 IT IT外包 IT外包公司 IT外包服务

ENNOVI推出ENNOVI-CellConnect-Prism

财见

从视觉识别到动作推荐:UI自动化测试的完整技术链条剖析

测吧(北京)科技有限公司

测试

利用技术提升UI自动化测试的准确性

测吧(北京)科技有限公司

测试

提高测试覆盖率:基于深度学习的新视角分析方法

测吧(北京)科技有限公司

测试

为什么要对数据库优化

小魏写代码

长查询问题,TDengine 终于攻克了!

TDengine

tdengine 时序数据库

已解决com.orbotix.common.DiscoveryException服务发现异常的正确解决方法,亲测有效!!!

小明Java问道之路

"使用PAI实现涂鸦变大作"AIGC活动重磅来袭!

阿里云大数据AI技术

AIGC

软件测试学习笔记丨性能测试工具JMeter 基本使用

测试人

软件测试 测试开发

云手机实现全方位的海外舆情监测

Ogcloud

云计算 云手机 海外云手机 云手机海外版 舆情监测

详细的Java学习指南,java高级面试题库

程序猿忙什么

为什么 ERC-20 代币钱包的开发会改变代币化经济的游戏规则?

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

UI自动化测试技术的突破与挑战

测吧(北京)科技有限公司

测试

机器学习视觉处理技术:UI自动化测试的未来发展方向

测吧(北京)科技有限公司

测试

鲲鹏应用创新大赛 2023 金奖解读:openEuler 助力北大团队创新改进,网络性能再提升_云计算_鲁冬雪_InfoQ精选文章