this post was submitted on 06 Jan 2026
65 points (98.5% liked)

Linux

11007 readers
425 users here now

A community for everything relating to the GNU/Linux operating system (except the memes!)

Also, check out:

Original icon base courtesy of lewing@isc.tamu.edu and The GIMP

founded 2 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
[–] HappyFrog@lemmy.blahaj.zone 11 points 5 days ago (2 children)

But how much swap should I use?

[–] NaibofTabr@infosec.pub 15 points 5 days ago* (last edited 5 days ago) (2 children)

This is the best simple guideline: https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/10/html/managing_storage_devices/getting-started-with-swap#recommended-system-swap-space

Basically, if you want your system to be able to hibernate then you need enough swap space to sustain both the active swap file and a full image of the live system RAM (hibernate = suspend-to-disk, and uses the swap space). The swap file could be as large as the RAM, so a safe value is 2x the RAM. If you don't want to dedicate that much disk space to swap, the safe option is to disable hibernation but note that suspend-to-disk is safer for system recovery in the event of power failure.

If you've ever had a Linux system go into hibernate and fail to awake, lack of swap space was probably the reason.

In Red Hat's chart where they recommend 1.5x RAM for 8-64 GiB, basically you're hoping that your system is never completely using all of the RAM. If you do cap out the RAM such that the swap file plus the in-use memory is greater than 1.5x RAM, and the system goes into hibernate, it will not recover because there isn't enough free swap space to store the in-use memory. You have to make a judgment call when you set up your system about how you're going to use it - whether you expect to be using 100% of the RAM at any point, whether you'll remember to close some running applications to free up memory every time you leave the system idle long enough to go into hibernate, whether other users will be using the system (if they're logged in then they are partially using the RAM and the swap), etc.

Deciding how much swap space you need is a risk management decision based on your tolerance for data loss, application stability, and whether or not you need hibernation.

[–] davidgro@lemmy.world 8 points 5 days ago

What I don't understand is why there is so much resistance to the idea of having swap plus a separate hibernation file that is only enabled on demand. I finally got it working on my laptop, but it took a Lot of fiddly obscure manual configuration (which I wish I had documented - I don't just mean setting the offset in grub) and it still didn't play well with hybrid sleep, etc.

This is the only way to have hibernation that works at any memory pressure.

[–] khleedril@cyberplace.social 2 points 5 days ago (1 children)

@NaibofTabr @HappyFrog I think this is just incorrect. You don't need swap space to be the sum of the active swap file and the size of RAM, it only needs to be at least the size of RAM. The numbers in the article suggest bigger sizes for smaller RAM so there is less chance of a heavily-loaded running system crashing. You do want a bit more space when hibernating just to make the hibernation process a bit smoother.

Happy to be corrected by someone with provenance.

[–] NaibofTabr@infosec.pub 2 points 4 days ago

A modern OS running with low RAM (e.g. an RPi with 2G) is going to fill the RAM pretty quickly just in normal operation, so a larger swap space will allow it to run more efficiently as it regularly moves things in and out of swap. You still want to have some overhead to allow for storing the live RAM for hibernation, which with a small amount of RAM is likely to be near 100%. Therefore, running with 3x RAM for swap space is recommended.

it only needs to be at least the size of RAM

Yes, technically it only needs to be the size of the RAM, but no matter how much RAM you have some of the swap space will be used at any given time for the swap file during system operarion. If you only have exactly as much swap space as RAM, there won't be enough available swap space to store the entire live RAM for hibernation.

The size of the swap file and the size of the live RAM image at any point is unpredictable, therefore 1.5x RAM is the lowest recommended value that is probably safe for hibernation, assuming the swap file is not being used heavily enough to be 50% of the RAM. If you can't provide at least that much disk space for swap, you should disable hibernation.

[–] towerful@programming.dev 4 points 5 days ago

What I'd recommend is setting up a few testing systems with 2-3GB of swap or more, and monitoring what happens over the course of a week or so under varying (memory) load conditions. As long as you haven't encountered severe memory starvation during that week – in which case the test will not have been very useful – you will probably end up with some number of MB of swap occupied.

And

[... On Linux Kernel > 4.0] having a swap size of a few GB keeps your options open on modern kernels.

And finally

For laptop/desktop users who want to hibernate to swap, this also needs to be taken into account – in this case your swap file should be at least your physical RAM size.