Fresh MGLRU Benchmarks Are Looking Very Promising For Linux Performance
MGLRU as the "Multi-Gen LRU" for reworking the Linux kernel's page reclamation code to be less taxing on the CPU and making better choices continues to look very good for the future of Linux performance.
MGLRU v12 was recently posted as a re-base of this Google-developed patch series now against the Linux 5.19 state. I recently took these patches for some fresh benchmarking and continue to be impressed by the performance especially on memory-constrained devices.
Google already makes use of MGLRU on Android and Chrome OS and the results have been very favorable. Many organizations/users have reported great performance results with MGLRU. If all goes well we could possibly see MGLRU mainlined for the Linux 5.20 cycle.
One of the systems used for testing was a dual AMD EPYC 75F3 2P server for stressing the MGLRU v12 patches based against Linux 5.19-rc2... The same kernel build for each run, just the "disabled" run was using the sysfs interface for disabling MGLRU. The MGLRU run was at its default configuration.
In a number of areas the MGLRU-enabled kernel was yielding small to moderate performance improvements on this AMD EPYC Zen 3 server.
There were though some performance regressions spotted with MGLRU enabled:
There were only a few cases of the performance regressing with the MGLRU-enabled configuration, but I'll keep an eye on it and run on a few more large servers.
I also ran some tests on an AMD Ryzen 5 5500U laptop with just 8GB of RAM... Besides laptop use, such a Ryzen + ~8GB RAM configuration is somewhat common among edge computing and other thin client type environments. Of the dozens of benchmarks conducted, most of the tests showed no change to the performance. But when it came to I/O workloads like databases, MGLRU was showing to be of substantial help:
So while most of the benchmarks showed no change to performance with the MGLRU-enabled kernel, for various database-type workloads the MGLRU-enabled kernel was extremely beneficial for this Ryzen 5 APU + 8GB RAM system. Granted, not many laptop users are running such database workloads on a laptop itself, but for those with edge computing devices / thin clients / SOHO servers with a consumer APU/CPU and ~8GB of RAM, the MGLRU feature could prove to be very attractive.
Those are the MGLRU v12 benchmarks I've carried out so far, stay tuned for more MGLRU testing on Phoronix with this being one of the most exciting performance-related kernel features in the works in recent times. Hopefully we'll see MGLRU finally mainlined for Linux 5.20 to make the next kernel cycle even more exciting.
MGLRU v12 was recently posted as a re-base of this Google-developed patch series now against the Linux 5.19 state. I recently took these patches for some fresh benchmarking and continue to be impressed by the performance especially on memory-constrained devices.
MGLRU details from a prior mailing list post patch series.
Google already makes use of MGLRU on Android and Chrome OS and the results have been very favorable. Many organizations/users have reported great performance results with MGLRU. If all goes well we could possibly see MGLRU mainlined for the Linux 5.20 cycle.
One of the systems used for testing was a dual AMD EPYC 75F3 2P server for stressing the MGLRU v12 patches based against Linux 5.19-rc2... The same kernel build for each run, just the "disabled" run was using the sysfs interface for disabling MGLRU. The MGLRU run was at its default configuration.
In a number of areas the MGLRU-enabled kernel was yielding small to moderate performance improvements on this AMD EPYC Zen 3 server.
There were though some performance regressions spotted with MGLRU enabled:
There were only a few cases of the performance regressing with the MGLRU-enabled configuration, but I'll keep an eye on it and run on a few more large servers.
I also ran some tests on an AMD Ryzen 5 5500U laptop with just 8GB of RAM... Besides laptop use, such a Ryzen + ~8GB RAM configuration is somewhat common among edge computing and other thin client type environments. Of the dozens of benchmarks conducted, most of the tests showed no change to the performance. But when it came to I/O workloads like databases, MGLRU was showing to be of substantial help:
So while most of the benchmarks showed no change to performance with the MGLRU-enabled kernel, for various database-type workloads the MGLRU-enabled kernel was extremely beneficial for this Ryzen 5 APU + 8GB RAM system. Granted, not many laptop users are running such database workloads on a laptop itself, but for those with edge computing devices / thin clients / SOHO servers with a consumer APU/CPU and ~8GB of RAM, the MGLRU feature could prove to be very attractive.
Those are the MGLRU v12 benchmarks I've carried out so far, stay tuned for more MGLRU testing on Phoronix with this being one of the most exciting performance-related kernel features in the works in recent times. Hopefully we'll see MGLRU finally mainlined for Linux 5.20 to make the next kernel cycle even more exciting.
16 Comments