新的 MGLRU Linux 补丁旨在提高 Global Reclaim 的可扩展性

223次阅读
没有评论

Linux 6.1 的许多令人兴奋的新功能中,合并多代 LRU“MGLRU”代码已成为2022 年最好的内核创新之一,用于全面检查 Linux 内核的页面回收代码。性能结果已经非常有希望,并且 MGLRU 正在 Google 和其他大型部署中成功使用。尽管在这个领域进一步推进内核的工作还没有结束。

MGLRU看起来非常适合 Linux 6.1,并且正在继续发展。上周一直领导上游 Linux 内核的 MGLRU 补丁的谷歌工程师 Yu Zhao 发布了一组新的增强功能。

Yu Zhao 的最新补丁涵盖了 memcg LRU。以下是他如何总结这项附加功能的工作:

memcg LRU 是 memcgs 的每节点 LRU。它也是 LRU 的 LRU,因为每个节点和 memcg 组合都有一个 LRU 的作品集(请参阅 mem_cgroup_lruvec())。

它的目标是提高全局回收的可扩展性,这对于数据中心的系统范围内存过度使用至关重要。请注意,memcg 回收目前超出范围。

它的内存膨胀是指向每个 LRU 向量的指针,并且对每个节点都可以忽略不计。在global reclaim期间遍历memcgs方面,将best-case的复杂度从O(n)提升到O(1),并且不影响worst-case的复杂度O(n)。因此,平均而言,与当前的线性复杂度相比,它具有次线性复杂度。

在全球回收方面,它有两个鲜明的特点:
1. Sharding,允许每个线程从一个随机的memcg(老年代)开始,提高并行度;
2. 最终的公平性,允许直接回收并减少延迟,而不会在一段时间内影响公平性。

到目前为止,测试结果有限,但通过示例测试脚本来衡量有效性,MGLRU 的状态非常好。

新的 MGLRU Linux 补丁旨在提高 Global Reclaim 的可扩展性

他预计不久将有更多基准测试结果与大家分享。有关此最新 MGLRU 工作的更多详细信息,请参阅memcg LRU 补丁。尽管考虑到这些补丁的发布时间,但预计不会在即将到来的 v6.2 周期内发布。

正文完
 
Windows12系统管理员
版权声明:本站原创文章,由 Windows12系统管理员 2022-12-07发表,共计774字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)