MGLRU Revised A 10th Time For Improving Linux Performance, Better Under Memory Pressure
Multi-Gen LRU (MGLRU) is a rework by Google engineers on how the Linux kernel's page reclamation code is handled after finding the current Linux kernel page reclamation handling is too expensive and can make poor eviction choices. MGLRU has been showing to be a big improvement both for their internal workloads and by external parties testing the many public patch revisions. MLGRU benchmark results have been very promising due to this code path being less expensive on the CPU and making better eviction choices.
MGLRU will hopefully be ready for Linux 5.19 while the MGLRU v10 patches are out today for those wanting to help in testing.
The facts are:
1. The independent lab results and the real-world applications indicate substantial improvements; there are no known regressions.
2. Thrashing prevention, working set estimation and proactive reclaim work out of the box; there are no equivalent solutions.
3. There is a lot of new code; nobody has demonstrated smaller changes with similar effects.
Our options, accordingly, are:
1. Given the amount of evidence, the reported improvements will likely materialize for a wide range of workloads.
2. Gauging the interest from the past discussions, the new features will likely be put to use for both personal computers and data centers.
3. Based on Google's track record, the new code will likely be well maintained in the long term. It'd be more difficult if not impossible to achieve similar effects on top of the current active/inactive LRU.
Those wanting to give the MGLRU v10 patches a whirl can find them on the kernel mailing list.