Regularly getting systemd-oomd kills with high swap use

I regularly get kills from systemd-oomd with logs entries such as:

systemd-oomd[866]: Killed /system.slice/packagekit.service due to memory used (66788945920) / total (67297599488) and swap used (7732613120) / total (8589930496) being more than 90.00%

I have long running processes which aggressively consume/use 32+GB of buff/cache presumably due to large amounts of disk IO (latest check it is at 47GB).

It is a zram setup (per F34 default) and from what I can tell the >90% swap use is the trigger for the kills, but it also mentions the “RAM use” which seems incorrectly calculated for the purposes of triggering an OOM kill. From what I can tell, systemd-oomd is including buff/cache use against “RAM” available when determining if >90% swap use is a problem.

Is it a problem that a machine with 64GB RAM is filling up 8GB of swap over time? (I don’t think so)

I believe it is normal to use swap for areas of RAM which are seldom accessed. It looks like most of my swap use at the moment is from a very “quiet” virtual machine and gnome-software (don’t know why this is so big) (both >500MB) and many web pages at 30-80MB under “Web Content” processes. I used memory - How to find out which processes are using swap space in Linux? - Stack Overflow to explore what is using swap.

You should probably collect some diagnostics when the system is heavily loaded:

lsmem; free -m; swapon; zramctl