我想检查多代 LRU 在我的桌面上是否处于活动状态,因此我查看了 的值/sys/kernel/mm/lru_gen/enabled
。它被设置为0x0007
.我不确定如何利用这个值,所以我检查了另一个设备上的值,我确信我已经启用了它,因为我自己在那里配置了内核,并且它给了我值0x0001
。这两个值是什么意思?如果启用和禁用多代 LRU,预期值是多少?该文件还有其他有效值吗?
答案1
内核中的多代 LRU 文档值描述如下:
价值观 成分 0x0001 多代 LRU 的主开关。 0x0002 当MMU设置它时(例如,在x86上),大批量地清除叶页表条目中的访问位。理论上,这种行为会加剧锁争用 (mmap_lock)。如果禁用它,对于连续映射热页的工作负载,多代 LRU 将遭受轻微的性能下降,否则可以通过较少的较大批次清除其访问的位。 0x0004 当 MMU 设置它时(例如,在 x86 上),也会清除非叶页表条目中的访问位。此行为未在 Intel 和 AMD 以外的 x86 品种上得到验证。如果禁用,多代 LRU 的性能下降可以忽略不计。
这些值是或在一起的,因此 0x0007 表示启用所有功能,0x0001 表示启用多代 LRU,但不清除大批量访问的位。
任意组合均有效,IE0x0000 和 0x0007 之间的任何值。预期值取决于您的内核配置。