overcome limited RAM on VPS - Lemmy.world
Hi, Do you have suggestions for kernel tweaks for getting the most out of a RAM
limited system? I am running a service requiring 2GB of RAM (netbird) on a VPS
which has just 1 GB of memory. I am doing so because I am a stingy bastard and I
use only free VPSs for my personal use so I get what I am paying for. Because of
this hardware limit in about 12 hours from service start I begin swapping a bit
too much. This would still be manageable but soon the hypervisor gets really
pissed and steals up to 90% of the CPU. So the only solution so far is
restarting the docker containers every 12 hours (not great, not terrible).
Looking to improve this, Iam now experimenting with ZRAM and swappiness and it
seems some benefit can be achieved by using some of the Linux kernel feaures. Is
there anything else I should look into?
In my experience kernel tweaks aren’t going to be a major change on memory usage.
Most distros are meant to be full featured and not necessarily lightweight. So unless you are already running a minimalist distro, make sure you don’t have bunch of background services running you don’t need.
I can recommend using Debian Minimal iso’s, they require 256MB of mem. Depending on what features you enable you could use a lot more.
Thanks for sharing your experience, indeed the distribution is relevant here. I am running Arch (BTW) on this VPS which idles at about 300 MB with dockerd and containerd, I am not sure how does exactly compare to Debian on RAM usage (I have a couple of other VPS running debian which seem to use a little bit more RAM but it could be because those images are bastardized by the addition of cloud provider services). In any case my setup is pretty minimal, to get some large benefit there I fear I should use something without systemd :/
Yeah the 300meg isn’t going to get much less. Switching to Debian won’t change much there. Perhaps you can look into running a minimalist container distro if you are just using the machine for that. I personally want to check out Talos, there’s also RKE and Burmilla. No experience with them, to me the memory doesn’t matter much because I run a homelab. So I currently just run Debian and k3s. On my systems the containers are actually what gobbles up all the memory. If you’re using public container images, there’s a good chance the memory configuration on them isn’t optimal. Especially JVM services are a lot of the time configured to just use whatever is available. If you give them less memory they will do more garbage collection. So if CPU is less an issue then mem, that could be worth looking into (it’s just parameters you can pass on startup).
Hopefully any of this is of use. Good luck :)