返回上一页  首页 | cnbeta报时: 14:23:05
Linus Torvalds借助Claude Code优化Linux内核 多线程文件读取性能有望大幅提升
发布日期:2026-10-12 12:34:31  稿源:cnBeta.COM

Linux内核创始人林纳斯·托瓦兹(Linus Torvalds)正在借助人工智能编程工具Claude Code开发一项Linux内核性能优化方案。这项工作针对Linux内核内存管理机制中的一个性能瓶颈,目标是在多个线程同时读取同一个文件时,减少因内存页引用计数产生的竞争,从而提高文件读取效率。托瓦兹不仅使用AI辅助编写代码,还借助这一工具编写测试程序、开展代码审查,并起草了相关补丁说明。

image.webp

托瓦兹近期在等待Linux 7.3-rc7版本发布期间,刷新了自己的Linux内核Git代码仓库,并发现仓库中出现了一个不寻常的新分支。与他通常主要维护主分支的做法不同,这个名为“noref-filemap-read-with-llm”的分支专门用于开发一系列内核改进补丁。从分支名称中的LLM可以看出,这项工作与大型语言模型辅助编程有关。

托瓦兹随后在相关补丁说明中明确表示,这项工作是在他的指导下,借助Claude Code完成的。AI不仅参与了代码实现,还协助编写测试程序、开展代码审查,并起草了最初版本的补丁系列说明文档。相关性能测量则是在托瓦兹自己的计算机上完成的。

这项优化主要针对Linux内核文件读取路径中的一个特定问题。当多个线程同时读取同一个文件的小块数据时,它们可能会围绕文件页缓存中内存页的引用计数产生竞争,导致线程之间相互争用相关数据结构,进而限制读取性能。

要理解这一问题,需要先了解Linux内核如何处理文件读取。

Linux会利用页缓存(Page Cache)保存从存储设备读取的文件数据。当程序再次访问已经缓存在内存中的文件内容时,内核通常可以直接从内存提供数据,而不必每次都重新访问磁盘或其他存储设备。页缓存因此是Linux提升文件访问效率的重要机制。

image-1.webp

为了管理这些缓存数据,内核需要跟踪相关内存对象的生命周期。传统实现中的引用计数机制,可以帮助内核判断某个内存对象是否仍被使用,以及何时可以安全释放相关资源。

然而,当大量线程频繁访问同一个文件时,即使它们读取的数据已经位于内存中,相关引用计数操作仍然可能产生额外的同步开销。在多核处理器系统中,如果多个线程不断更新同一个共享计数值,就可能出现缓存一致性流量增加、处理器核心相互等待等问题。

对于单线程或低并发场景,这类开销可能并不明显。但在高并发服务器、数据库、构建系统以及其他需要同时处理大量文件读取请求的工作负载中,重复发生的同步操作可能逐渐成为性能瓶颈。

托瓦兹正在开发的补丁系列,正是希望减少这类不必要的引用计数操作。其核心思路是调整文件读取路径,使内核能够在特定条件下直接从页缓存读取数据,而不必为每次相关访问都执行传统的folio引用管理操作。

这里的folio是Linux内核用于管理一组连续或关联内存页的基础抽象之一。近年来,Linux内核逐渐使用folio机制替代部分旧有的单页管理方式,以便更高效地处理内存管理任务。如何降低folio引用计数带来的开销,也因此成为内核性能优化的一项重要工作。

从技术角度来看,这类优化并不是简单地删除引用计数。内核仍然必须确保内存对象在被访问期间不会被提前释放,也不能因为减少同步操作而引入数据损坏或内存安全问题。因此,补丁需要在正确性、并发访问安全和性能之间取得平衡。

这一优化在目标工作负载下带来了相当明显的性能变化。测试主要针对多个线程同时读取同一个文件的小块数据这一场景,正好对应补丁试图解决的竞争问题。

不过,这些结果应当理解为特定测试条件下的性能表现,而不是Linux所有文件操作都会获得同等幅度的提升。实际收益取决于应用程序的访问模式、线程数量、文件大小、存储设备、内存配置以及其他系统因素。对于不涉及相同竞争问题的工作负载,优化效果可能有限。

目前,这些补丁仍保存在托瓦兹的个人Git分支中,尚不能据此认定它们已经正式进入Linux主线内核。后续是否会被合并,以及最终采用何种实现方式,还需要进一步观察。

按照目前的开发节奏,这一补丁系列有可能在接下来的Linux 7.4合并窗口期间进入进一步讨论或审查阶段,但最终能否合并仍取决于代码审查、测试结果和维护者的判断。

值得关注的是,托瓦兹使用Claude Code并不是他第一次尝试借助人工智能处理Linux相关开发工作。

此前,他已经谈到过使用AI辅助内核调试,并在Linux内核之外尝试过GoogleAntigravity等AI编程工具。对于托瓦兹而言,AI并不是取代开发者的独立决策者,而是一种可以在明确目标和人工监督下使用的开发工具。

今年以来,人工智能编程工具正在逐步进入开源软件开发流程。越来越多开发者利用大型语言模型分析代码、定位错误、编写测试,以及生成初始补丁。Linux内核社区也出现了越来越多由AI辅助编写的代码和错误报告。

这种趋势同时带来了机遇与挑战。一方面,AI可以帮助经验丰富的开发者更快地探索复杂代码路径、提出优化思路,并减少编写重复代码所需的时间。另一方面,大量自动生成的补丁和错误报告也增加了维护者的审查负担,其中部分提交可能存在质量不高、重复提交或缺乏实际价值的问题。

托瓦兹此前就曾公开表示,他认为AI是一种有用的工具,但内核社区需要应对AI生成内容快速增加所带来的工作压力。他并不主张仅仅因为代码使用了AI就将其拒之门外,而是更关注最终代码的质量、正确性和实际效果。

此次Claude Code参与的内核优化项目,恰好体现了AI辅助开发的一种较为具体的应用方式:由熟悉内核内部机制的开发者确定问题、提出优化方向并监督实现,再通过测试和代码审查验证结果。

与完全依赖AI自动生成整个软件项目不同,Linux内核开发涉及复杂的并发机制、内存安全要求和硬件行为。任何看似简单的修改,都可能影响大量应用程序和不同硬件平台。因此,即使AI能够帮助生成代码,开发者仍然需要理解其工作原理,并对最终实现承担责任。

如果这组补丁最终通过审查并进入Linux主线,它将成为AI辅助开发参与底层系统软件优化的又一个案例。其价值不仅在于特定场景下可能获得的性能提升,也在于展示大型语言模型如何协助经验丰富的工程师分析和改进复杂系统。

随着AI编程工具持续发展,未来Linux内核及其他大型开源项目可能会出现更多类似工作。不过,决定这些成果能否真正落地的,仍将是严格的技术验证、社区审查以及对系统稳定性的长期要求。

查看网友评论   返回完整版观看

返回上一页  首页 | cnbeta报时: 14:23:05

文字版  标准版  电脑端

© 2003-2026