Multi-Gen LRU is a game changer on my low memory netbook
from wolf@lemmy.zip to linux@lemmy.ml on 22 Feb 2025 23:15
https://lemmy.zip/post/32639491

MGLRU.

On my low RAM/CPU netbook it is a game changer; thanks to ZRAM the netbook is perfect for browsing the internet/light work. When running my backups (creates big tarballs) or Ansible though, my desktop/applications would freeze/stutter noticeably. Enabling MGLRU simply solved the problem of freezes/stuttering, it feels like magic and besides ZRAM, I don’t know of any other lever with this massive impact on desktop performance.

Just wanted to share this, for other users with low RAM/CPU hardware. I would assume the observed difference is less dramatic, once 8GB of RAM are available, but I would love to hear about other experiences.

I would also love to hear/learn about other levers with high impact to tweak for low RAM/CPU desktop devices. Anything else to tweak under /sys /proc which has impact on performance?

#linux

threaded - newest

geoff@lemm.ee on 23 Feb 2025 03:20 collapse

Did you need to compile a kernel to enable it? I’ve just done the project of installing Debian on a 20 year old iMac with 2.5 GB of RAM, and while zram definitely seems to help, I’d love to try this as well.

notanapple@lemm.ee on 23 Feb 2025 06:52 next collapse

Yes, but maybe debian enables it by default? You can check by running cat /sys/kernel/mm/lru_gen/enabled

If the result is 0x0007, it means MGLRU is fully enabled.

wolf@lemmy.zip on 23 Feb 2025 10:42 collapse

Debian does not enable it by default, cat /sys/kernel/mm/lru_gen/enabled will be a 0.

geoff@lemm.ee on 24 Feb 2025 21:22 collapse

I’m on trixie, since recent Mesa has many fixes for very old Radeon GPUs, and it appears to be on by default! At least, I didn’t intentionally turn it on and it’s on.

wolf@lemmy.zip on 24 Feb 2025 21:58 collapse

Does on mean that /sys/kernel/mm/lr_gen/enabled returns 0x7?

geoff@lemm.ee on 25 Feb 2025 00:20 collapse

Yes indeed. Well: 0x0007.

wolf@lemmy.zip on 23 Feb 2025 10:39 collapse

I am running Debian 12 on all of my devices with Debians vanilla kernel! :-) Just enable MGLRU on Debian like it is described in this blogpost.

One further tip for ZRAM: On my device the LZ4 algorithm was noticeable faster than ZSTD (didn’t try ZSTD with the enabled MGLRU, yet) and it was important to disable the RAM page read-ahead on my device.

geoff@lemm.ee on 24 Feb 2025 17:54 collapse

I think I did go with LZ4 after looking at benchmarks; I figured on a weak CPU speed would be more valuable than another few percent of compression. I’ll have to look into the RAM page read-ahead.

wolf@lemmy.zip on 24 Feb 2025 21:57 collapse

Just set vm.page-cluster to 0, to disable the page read-ahead (AFAIK the default value was set when swap was still on rotating disks).

Arch wiki has some good options for tuning the VM