In case you don’t know Multi-Gen LRU is an alternative LRU implementation that optimizes page reclaim and improves performance under memory pressure. Page reclaim decides the kernel’s caching policy and ability to overcommit memory. It directly impacts the kswapd CPU usage and RAM efficiency.

Has anyone enabled this feature on their machines? Have you noticed any performance gains or memory management improvements? It’s developed by Google and is reportedly is being used in ChromeOS and Android.

  • @seaQueue
    link
    12
    edit-2
    9 months ago

    I use this on all of my machines now, it does a much better job of preventing swap thrashing than the original LRU code. I’ve been running the MGLRU patch set for like two years (?) without any downside that I’ve been able to detect.

    Edit: We switched to using the MGLRU patch set for all of our Arch kernel packages in the asus-linux community back when the patch set was in development, there have been zero problem reports over an installed base of at least a couple hundred people. As far as I can tell there really isn’t a downside to using it.

    • Presi300
      link
      English
      29 months ago

      How do I enable it? I’ve been having huge issues with reclaiming swap and memory usage in general. Do I have to compile the kernel myself and if I do, where is the option located?

      • @seaQueue
        link
        29 months ago

        Check your running kernel’s config at /proc/config (or config.gz) to see if it’s enabled.

        https://docs.kernel.org/admin-guide/mm/multigen_lru.html has admin/usage details.

        If your current kernel doesn’t build multi-gen LRU then you’ll need to build a kernel package that does, or switch to one that enables it.

        • Presi300
          link
          English
          19 months ago

          Ah, then where in the menuconfig is this option located, if I need to build my own kernel…

          • @seaQueue
            link
            1
            edit-2
            9 months ago

            Use the search function and look for LRU_GEN. Try make nconfig while you’re at it, it’s the new terminal config menu system.

            • Presi300
              link
              English
              18 months ago

              man, make nconfig is such a life savior when configuring a new kernel, it’s great