NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

鲲鹏应用创新大赛 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:285993
用户头像
鲁冬雪 InfoQ 策划主编

发布了 338 篇内容, 共 197.6 次阅读, 收获喜欢 270 次。

关注

评论

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

高效压缩位图在推荐系统中的应用

vivo互联网技术

redis 推荐 存储

Docker 实战教程之从入门到提高 (七)

Jerry Wang

Docker 容器 docker image 容器镜像 4月月更

Nocalhost - 让云原生时代的开发更高效

沃趣科技

云原生 Nocalhost 应用开发

企业管理理念之人本善还是本恶

秋去冬来春未远

企业管理 人性本善 人性本恶 一念之差

读《Software Engineering at Google》(09)

术子米德

架构师成长笔记

Go 入门很简单:Writer和Reader接口

宇宙之一粟

接口 Go 语言 4月月更

Linux驱动开发-外部中断的注册使用(按键为例)

DS小龙哥

4月月更

关于数字货币的几点问题及回应

CECBC

区块链如何助推著原创保护

CECBC

一文论述元宇宙、NFT及不可回避的Web3 时代

CECBC

读《Software Engineering at Google》(08)

术子米德

架构师成长笔记

安全之花如何盛开在华为云空间的每个角落?

脑极体

在线CSV转Plaintext(txt)工具

入门小站

工具

利用 Dio 完成数据删除操作

岛上码农

ios 跨平台 移动端开发 flutter开发 安卓开发

[Day19]-[动态规划]分割等和子集

方勇(gopher)

LeetCode 动态规划 数据结构和算法

读《Software Engineering at Google》(10)

术子米德

架构师成长笔记

upnp.exe进程

Sher10ck

日积月累

java培训JVM内存模型和GC机制的解析

@零度

Java JVM GC

API对接之模板方法

Rubble

4月日更 4月月更

在线YAML转CSV工具

入门小站

工具

论利润中心内部核算和集团核算

秋去冬来春未远

阿米巴 利润中心 集团成本

Web3.0 时代,我们的生活将产生什么变化?

CECBC

基于云效Codeup一键恢复删库保护数据资源,程序员删库跑路不复存在

阿里云云效

云计算 阿里云 程序员 代码安全 删库保护

Java 操作 Office:POI word 之文档信息提取

程序员架构进阶

内容审核 4月日更 文档识别 4月月更

linux之rpm命令

入门小站

Linux

另一视角看元宇宙:元宇宙文化正悄然改变世界

CECBC

老旧项目二次开发指南

阿毛

重构 项目架构 二次开发

什么是知识库管理系统?如何搭建企业知识库系统?

小炮

企业知识管理 企业知识管理工具 知识管理系统

Camtasia Studio2022汉化版

茶色酒

Camtasia2022

spring-cloud-kubernetes的服务发现和轮询实战(含熔断)

程序员欣宸

java 4月月更

TASKCTL C/S客户端两种不同的登陆模式

TASKCTL

分布式 ETL 批量操作 自动化运维 调度任务

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