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)
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.
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.