A swap partition is a part of your storage disk that is formatted for swap use. It could also be it’s own disk for high performance systems, but mostly for HPC.
A swap file is basically an empty disk image file that you mount as swap, the OS will use it just like a swap partition.
I prefer swap files because I find them easier to manage. I can easily delete, move, or enlarge the swap file whereas the partition will take a bit more work and is a bit riskier to change. Changing partition layouts can get very messy.
I always recommend a swap file be created when setting up a new Linux machine, even if you have loads of RAM. Some applications will use swap space to help performance, but I also like the fact that if I do something really dumb and fill up the root partition I can delete my swap file to free up space immediately, fix the full disk problem, and then recreate the swap file.
Exactly what I meant, but typoed and put cache instead.
But yeah, I often get memory scares when opening large blender asset files. I got 32gb of swap, but the beast can get hungry fast (and I keep forgetting to close tabs)
I was wondering if the extra layer of whatever filesystem the swap file is created on creates overhead? Also i think some filesystems that do COW can negatively impact performance or something? Kind of remember reading that.
I’ve never noticed an appreciable performance hit, but I also don’t generally swap much. Most of the time on a desktop/workstation I’m surprised to see a gig or 2 in swap. Nvme drives are pretty fast.
If you are actually using swap space on a regular basis it might be worth it to upgrade RAM or use a dedicated drive for swap if necessary.
I remember btrfs having swap file issues but the details are fuzzy, these days I use zfs on my nas and ext4 everywhere else.
For swap files on btrfs COW and features like compression have to be disabled. I believe for btrfs the swap file even has to sit on a subvolume with those features disabled, so it’s not enough to only disable them for the swap file.
https://wiki.archlinux.org/title/swap#Swap_file
I call them swap files but either is correct.
A swap partition is a part of your storage disk that is formatted for swap use. It could also be it’s own disk for high performance systems, but mostly for HPC.
A swap file is basically an empty disk image file that you mount as swap, the OS will use it just like a swap partition.
I prefer swap files because I find them easier to manage. I can easily delete, move, or enlarge the swap file whereas the partition will take a bit more work and is a bit riskier to change. Changing partition layouts can get very messy.
I always recommend a swap file be created when setting up a new Linux machine, even if you have loads of RAM. Some applications will use swap space to help performance, but I also like the fact that if I do something really dumb and fill up the root partition I can delete my swap file to free up space immediately, fix the full disk problem, and then recreate the swap file.
Thank you for your detailed explanation.
Exactly what I meant, but typoed and put cache instead.
But yeah, I often get memory scares when opening large blender asset files. I got 32gb of swap, but the beast can get hungry fast (and I keep forgetting to close tabs)
Swap files are useful if you are still on EXT4 or similar. If you’re using ZFS or BTRFS or BCacheFS, they have no benefits.
I was wondering if the extra layer of whatever filesystem the swap file is created on creates overhead? Also i think some filesystems that do COW can negatively impact performance or something? Kind of remember reading that.
I’ve never noticed an appreciable performance hit, but I also don’t generally swap much. Most of the time on a desktop/workstation I’m surprised to see a gig or 2 in swap. Nvme drives are pretty fast. If you are actually using swap space on a regular basis it might be worth it to upgrade RAM or use a dedicated drive for swap if necessary. I remember btrfs having swap file issues but the details are fuzzy, these days I use zfs on my nas and ext4 everywhere else.
For swap files on btrfs COW and features like compression have to be disabled. I believe for btrfs the swap file even has to sit on a subvolume with those features disabled, so it’s not enough to only disable them for the swap file.