You don’t need it, but a gig of disk space is basically free, so why not? Swap is generally a good thing.
The core difference is that with swap when the system needs more RAM the kernel has a choice between A) Evicting pages from the disk cache or B) Swapping out anonymous data (memory not backed by a file). If you don’t have swap the choice is limited to just A. (There are a few other ways to reclaim RAM but these are the biggest two). The means that with swap you will see thrashing if your whole working set doesn’t fit in ram, without swap you will see thrashing if all anonymous memory + the rest of your working set doesn’t fit into RAM. Basically having no swap pins all anonymous memory in RAM, even if it isn’t being used. In most cases it is better to give the kernel more choices, because swapping out some background process that has been sleeping for the last 2h and will probably sleep for another 2 is much better than evicting a page of an active application from the disk cache (that will need to be read back soon).
It’s always nice to have a failsafe if some process has a major memory leak. Otherwise if your memory fills up your system completely freezes with no way to recover.
This isn’t quite true. The system does recover. The mechanism doing the recovery is the kernel OOM killer which begins to shoot processes to free up RAM. Now whether or not the processes you care about survive or not and whether they lost any data you care about is a different question. 🤭 That’s a problem elegantly solved on Android by the introduction of its more complex lifecycle which provides data persistence guarantees.
Regular linux users with >4GB RAM don’t need swap IMO. You can use swap for hybernation, but most people don’t even use that feature.
Hibernation absolutely rocks, though.
Insert 16GB of ZRAM here
You don’t need it, but a gig of disk space is basically free, so why not? Swap is generally a good thing.
The core difference is that with swap when the system needs more RAM the kernel has a choice between A) Evicting pages from the disk cache or B) Swapping out anonymous data (memory not backed by a file). If you don’t have swap the choice is limited to just A. (There are a few other ways to reclaim RAM but these are the biggest two). The means that with swap you will see thrashing if your whole working set doesn’t fit in ram, without swap you will see thrashing if all anonymous memory + the rest of your working set doesn’t fit into RAM. Basically having no swap pins all anonymous memory in RAM, even if it isn’t being used. In most cases it is better to give the kernel more choices, because swapping out some background process that has been sleeping for the last 2h and will probably sleep for another 2 is much better than evicting a page of an active application from the disk cache (that will need to be read back soon).
Zram is a must
It’s always nice to have a failsafe if some process has a major memory leak. Otherwise if your memory fills up your system completely freezes with no way to recover.
This isn’t quite true. The system does recover. The mechanism doing the recovery is the kernel OOM killer which begins to shoot processes to free up RAM. Now whether or not the processes you care about survive or not and whether they lost any data you care about is a different question. 🤭 That’s a problem elegantly solved on Android by the introduction of its more complex lifecycle which provides data persistence guarantees.