←back to thread

804 points jryio | 1 comments | | HN request time: 0s | source
Show context
speedgoose ◴[] No.45661785[source]
Looking at the htop screenshot, I notice the lack of swap. You may want to enable earlyoom, so your whole server doesn't go down when a service goes bananas. The Linux Kernel OOM killer is often a bit too late to trigger.

You can also enable zram to compress ram, so you can over-provision like the pros'. A lot of long-running software leaks memory that compresses pretty well.

Here is how I do it on my Hetzner bare-metal servers using Ansible: https://gist.github.com/fungiboletus/794a265cc186e79cd5eb2fe... It also works on VMs.

replies(15): >>45661833 #>>45662183 #>>45662569 #>>45662628 #>>45662841 #>>45662895 #>>45663091 #>>45664508 #>>45665044 #>>45665086 #>>45665226 #>>45666389 #>>45666833 #>>45673327 #>>45677907 #
levkk ◴[] No.45662183[source]
Yeah, no way. As soon as you hit swap, _most_ apps are going to have a bad, bad time. This is well known, so much so that all EC2 instances in AWS disable it by default. Sure, they want to sell you more RAM, but it's also just true that swap doesn't work for today's expectations.

Maybe back in the 90s, it was okay to wait 2-3 seconds for a button click, but today we just assume the thing is dead and reboot.

replies(16): >>45662314 #>>45662349 #>>45662398 #>>45662411 #>>45662419 #>>45662472 #>>45662588 #>>45663055 #>>45663460 #>>45664054 #>>45664170 #>>45664389 #>>45664461 #>>45666199 #>>45667250 #>>45668533 #
KaiserPro ◴[] No.45662472[source]
Yeahna, thats just memory exhaustion.

Swap helps you use ram more efficiently, as you put the hot stuff in swap and let the rest fester on disk.

Sure if you overwhelm it, then you're gonna have a bad day, but thats the same without swap.

Seriously, swap is good, don't believe the noise.

replies(2): >>45662602 #>>45662672 #
adastra22 ◴[] No.45662672[source]
I don’t understand. If you provision the system with enough RAM, then you can for every page in RAM, hot or not.
replies(1): >>45663000 #
akvadrako ◴[] No.45663000[source]
Only if you have more RAM than disk space, which is wasteful for many applications.
replies(1): >>45663147 #
adastra22 ◴[] No.45663147[source]
Running out of memory kills performance. It is better to kill the VM and restart it so that any active VM remains low latency.

That is my interpretation of what people are saying upthread, at least. To which posters such as yourself are saying “you still need swap.” Why?

replies(2): >>45663366 #>>45666448 #
eru ◴[] No.45663366[source]
RAM costs money, disk space costs less money.

It's a bit wasteful to provision your computers so that all the cold data lives in expensive RAM.

replies(2): >>45663396 #>>45663411 #
adastra22 ◴[] No.45663396{6}[source]
When building distributed systems, service degradation means you’ll have to provision more systems. Cheaper to provision fewer systems with more RAM.
replies(1): >>45663573 #
1. eru ◴[] No.45663573{7}[source]
It depends on what you are doing, and how your system behaves.

If you size your RAM and swap right, you get no service degradation, but still get away with using less RAM.

But when I was at Google (about a decade ago), they followed exactly the philosophy you were outlining and disabled swap.