基于AMD EPYC平台的Linux内核5.0〜5.9基准测试表明,正在开发的Linux内核5.9减少了某些工作负载条件下的性能问题。
据报道,此问题主要发生在测试项目中,例如Apache HTTPD Web服务器。
为了解决这个问题,由Linus Torvalds领导的开发团队决定一分为二,并基于侧锁的公平性提出了一种解决方案。
这个问题的基本原理有点复杂。
简单地说,页面锁太“公平”,这有时会导致性能下降。
Linus Torvalds和其他开发人员共同研究了如何进一步改善页面锁定行为,并且今天将一种短期解决方案合并到Linux 5.9的主线补丁更新中。
称为2a9127fcf229(mm:重写wait_on_page_bit_common()逻辑“)的此合并提交允许更改控制页面锁定中不公平性的参数。
如果等待锁,系统将严格按照顺序移动数据。
该修订旨在消除长期存在的“看门狗”问题。
故障,这涉及在极端负载条件下的页面锁定。
在此过程中,如果其他页面被锁定,则相关过程可能会陷入永久等待状态。
此外,尽管Linux 5.9在某些基准测试项目上的运行得分非常引人注目,但副作用是,其他某些基准测试项目的性能却急剧下降,例如平均延迟和吞吐量恶化。
此修订版不是对先前版本的完全取消。
相反,它引入了可控制的解决方案以解决页面锁定的不公平性。
尽管默认设置相对平衡,但是有需要的开发人员仍然可以通过sysctl界面对其进行调整。
显然,这些解决方案围绕页面锁定的重要性展开。
但是,主要争议似乎与IO(页面锁定的起源)无关,并且页面文件的映射相对稳定(错误插入的页面表除外)。
另外,开发人员还可以通过sysctl sysctl_page_lock_unfairness(或/ proc / sys / vm / page_lock_unfairness)(默认值为0是公平模式)来调整内核页面锁定的不公平程度。