正文内容 评论(0

腾讯工程师出手!Linux多交换设备I/O调度大重构:彻底干掉全局锁
2026-07-14 11:01:07  出处:快科技 作者:红茶 编辑:红茶     评论(0)点击可以复制本篇文章的标题和链接复制对文章内容进行纠错纠错

快科技7月14日消息,腾讯工程师Kairui Song近日向Linux内核提交了一组RFC补丁,旨在彻底重构多个交换设备的I/O分配机制。

对于使用交换分层或分层交换处理的复杂服务器场景,这套方案有望显著改善系统性能与可扩展性。

腾讯工程师出手!Linux多交换设备I/O调度大重构:彻底干掉全局锁

这套补丁引入了一种全新的方法来公平分配多交换设备的I/O负载。其核心改动是完全移除可变的plist和全局锁,进而取消了全局集群缓存。这样一来,分配和轮换可以更加自由地进行。

作为依赖项,该系列还清理并重构了交换设备管理的锁定模式。

此前,每个交换设备都有自己的percpu集群缓存。后来一个提交将集群缓存移到了全局作用域,让所有设备共享同一个全局缓存,以减少对plist的频繁修改。

快速交换分配直接使用每个CPU的集群缓存,设备轮换仍由plist处理。这种设计虽然可行,却引发了多个长期存在的问题。

其中最关键的是,位于设备选择之上的全局CPU集群缓存,与交换分层和分层交换分配等概念存在根本冲突。

plist本身需要plist_requeue()函数来轮换设备以实现轮询,这需要持有swap_avail_lock锁,所有CPU都会争用这把锁。

此外,轮换被认为是慢速路径,为了不触碰plist而采用快慢路径设计,导致了诸多变通方案和设计局限。

新补丁将所有交换设备和新引入的percpu读取器优先级队列,统一由percpu rwsem保护,从而大幅提高了可扩展性。这一设计也为未来的交换分层等新想法做好了铺垫。

腾讯工程师出手!Linux多交换设备I/O调度大重构:彻底干掉全局锁

【本文结束】如需转载请务必注明出处:快科技

责任编辑:红茶

文章内容举报

  • 支持打赏
  • 支持0

  • 反对

  • 打赏

文章价值打分

当前文章打分0 分,共有0人打分
  • 分享好友:
  • |
本文收录在
#Linux#腾讯#I/O

  • 热门文章
  • 换一波

  • 好物推荐
  • 换一波

  • 关注我们

  • 微博

    微博:快科技官方

    快科技官方微博
  • 今日头条

    今日头条:快科技

    带来硬件软件、手机数码最快资讯!
  • 抖音

    抖音:kkjcn

    科技快讯、手机开箱、产品体验、应用推荐...