凯时AG

腾讯工程师脱手!Linux多交流装备I/O调理大重构:彻底干掉全局锁

作者:张倩纬
宣布时间:2026-07-22 05:34:43
阅读量:9864

腾讯工程师脱手!Linux多交流装备I/O调理大重构:彻底干掉全局锁

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

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

这套补丁引入了一种全新的要领来公正分配多交流装备的I/O负载 。。。其焦点改动是完全移除可变的plist和全局锁, ,,, ,,进而作废了全局集群缓存 。。。这样一来, ,,, ,,分配和轮换可以越发自由地举行 。。。

作为依赖项, ,,, ,,该系列还整理并重构了交流装备治理的锁定模式 。。。

此前, ,,, ,,每个交流装备都有自己的percpu集群缓存 。。。厥后一个提交将集群缓存移到了全局作用域, ,,, ,,让所有装备共享统一个全局缓存, ,,, ,,以镌汰对plist的频仍修改 。。。

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

其中最要害的是, ,,, ,,位于装备选择之上的全局CPU集群缓存, ,,, ,,与交流分层和分层交流分配等看法保存基础冲突 。。。

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

别的, ,,, ,,轮换被以为是慢速路径, ,,, ,,为了不触碰plist而接纳快慢路径设计, ,,, ,,导致了诸多变通方案和设计局限 。。。

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

 

文章点评

未盘问到任何数据!

揭晓谈论

◎接待加入讨论, ,,, ,,请在这里揭晓您的看法、交流您的看法 。。。

最新文章

热门文章

随机推荐

【网站地图】