微软为服务器ARM优化Linux内核





在2020年Linux Plumbers大会上,Microsoft开发人员讨论了他们的实验项目-为ARM服务器处理器优化Linux内核。首席软件开发经理Jan Birman作了演讲。



据专家说,该项目是应公司内部要求启动的。 Linux已用于Azure云,Azure Sphere和Linux的Windows子系统等项目中。 Bierman的团队的任务是使用64位ARM或x86处理器在Linux上最大化云服务性能。开发人员可以使用自己的参数和标志来为操作系统编译内核。







原始发行版是预装了GCC 9.2.1,binutils 2.33和内核5.3的Ubuntu 19.10。服务器处理器-64位ARM Marvell Thunder X2。经过集思广益,团队决定使用LTO和PGO优化来构建内核。







性能分析优化(PGO或FDO)和通信时间优化(LTO或LTCG)显着减慢了构建过程,并且需要更多RAM才能使编译器工作,但从理论上讲,它们可使命令执行速度提高10-20%。开发人员很少使用PGO,而LTO最近已用于构建内核和其他软件包。以前,由于GCC和LLVM编译器的兼容性问题,开发人员对使用链接时间优化有所警惕。 Birman的团队向经验丰富的Linux内核开发人员Andy Kleen寻求帮助,他为LTO发布了一个补丁程序,以使其与ARM处理器一起正常工作。为了使PGO正常工作,开发人员研究了文档并通过反复试验使其稳定。







完成核心构建后,该团队在开源Redis常驻NoSQL数据库管理系统上测试了性能。执行各种命令后,开发人员报告命令执行速度提高了5-20%。从内部Redis基准测试获得的数据。











顺便说一下,不久前Microsoft发布了Windows 10的KB4566116更新。此更新在1909和1903版本的OS中增加了对Linux 2的Windows子系统(WSL 2)的支持。这样就可以使用完整的Linux内核。在WSL2中,默认情况下它不是Windows的一部分,而是使用OS内置的工具动态加载和更新。



All Articles