Setup optimal swap settings when firefox juggles with memory

My laptop runnning 20.04 has only 8GB of RAM but 32GB of swap on NVMe disk.

When RAM usage reaches ~90%, the “Web Content” processes of Firefox 79.0 (only those which are greedy in RAM such as social networks) start to juggle with memory pretty fast, even if the guilty tabs are inactive, and even if I finally free huge quantity of RAM to reach a reasonable percentage of usage as shown in the screenshot below.

Firefox juggles with chunks of RAM

My issue with this behaviour is that it slows down the whole system on the long term. THe only workaround I found is to open many apps to force swapping, and then close them so that RAM is freed but swap rate remains high.

I have 2 wishes:

  • How can I tell the kernel to swap earlier? At least Firefox wouldn’t have to deal with a few % of free memory. For instance just like the Windows pagefile strategy which seems to swap pages way before the Linux kernel does. My swapiness is currently 1, which looks the less terrible, I tried high values such as 60, 90, 100: it does not swap earlier but it’s definitely slower.
  • How can I prevent “Firefox Web Content” from juggling with RAM chunks for no reason? Not only it uses 100% of 1 CPU a few seconds for each change, but also the full system becomes slow a few seconds, that’s really nasty. Note: I am not wishing it could use less RAM, first because all browsers are RAM-greedy and second because I have 32GB of swap which can surely host pages from tabs I don’t use so much. So I just want it to stop freeing memory that it will request again 10 seconds later.

Go to Source
Author: myoan