【openEuler 2023 年度优秀项目推荐】openEuler Atune SIG 创新项目 sysBoost

13 Oct
2023
13 Oct
'23
5 p.m.
sysBoost是在openEuler社区发起的创新项目,它是一个针对CPU微架构的程序优化工具,帮助用户无感提升业务性能。
推荐人:
gitee id: liu-yuntao-10
email:
liuyuntao10@huawei.com
gitee id: softkiller
email:
zhoukang7@huawei.com
gitee id: pan-y182
email:
yangpan51@huawei.com
社区地址:https://gitee.com/openeuler/sysboost
推荐奖项:openEuler
年度新建项目/年度技术创新项目
- 开源开放
本项目采用木兰开源协议,代码托管在openEuler
-
行业影响 本项目部分功能已经在openEuler
23.09版本交付,支持bash等应用的性能优化,后续会继续完善功能,新增更多场景的支持。
-
技术创新 本项目使用了多项前沿技术以提升用户业务进程性能,已交付的有二进制合并、代码段/数据段大页、内存预加载等;规划中的有指令动态优化、系统级统一动态库等。开发工具上,也尽可能地采用较为前沿的rust语言开发。
-
社区活跃 有8位社区开发者参与过sysBoost项目。
-
高质量开发和运营 代码符合社区规范,且满足安全等质量要求,代码检视流程完整,文档详尽,均托管在openEuler。
sysBoost介绍:
目前linux操作系统的用户很难对自己的程序针对CPU微架构进行优化,存在以下痛点:
-
大型APP应用,使用大量的第3方或自研动态库,函数调用产生大量PLT跳转导致IPC指令执行效率下降。
-
汇编代码体积大内存占用大,导致iTLB miss概率高。热点代码段布局离散,导致iCache miss高,影响CPU流水线执行效率。
-
应用开发者对操作系统与CPU微架构不熟悉,IPC性能调优成本过大。
sysBoost通过整合一系列微架构优化手段,帮助用户无感提升业务性能。
当前sysBoost已经实现的技术如下,通过这些技术能够达到UNIX
BENCH提升5%+,mysql基线性能提升15%+的效果:
-
二进制合并:应用代码调用动态库函数的流程,需要先跳转PLT表,然后跳转真实函数。通过实时合并应用和动态库的方式,可以消除PLT跳转,提升性能。
-
内存预加载:进程启动时会触发大量的缺页中断,在某些进程启动频繁的场景,缺页中断的耗时可能超过50%。通过预加载一些内存页面,可以提升应用的启动速度。
-
exec原生大页:用户态大页机制需要应用修改配置和重编译,exec原生大页机制直接在内核加载ELF文件阶段使用大页内存,对APP透明。
后续sysBoost还规划了更多的性能优化特性,帮助用户进一步提升业务性能:
-
指令动态优化:进程运行时,动态将热点指令重排到临近区域,提升缓存利用率。
-
系统级统一动态库:将系统中所有的动态库动态合并成一个统一动态库,消除PLT跳转的同时,提供了进一步使用大页、动态优化等机制优化的空间。该优化对系统中所有进程都能够生效,无须单独配置。
501
Age (days ago)
501
Last active (days ago)
0 comments
1 participants
participants (1)
-
liuyuntao (D)