To be clear, I don’t blame the poster of this comment at all for the content of their post – this is accepted as “common knowledge” by a lot of Linux sysadmins and is probably one of the most likely things that you will hear from one if you ask them to talk about swap. It is unfortunately also, however, a misunderstanding of the purpose and use of swap, especially on modern systems.
definitely agreed on against using swap as memory as much as you can especially since it can needlessly wear out your ssd (m.2 on most if not all on modern systems)
allocating swap is still necessary as it provides features such as:
On my journey to learning Arch Linux I’ve personally tried:
the last two doesn’t guarantee 0 problems as user errors such as allocating too much system memory to VMs can cause issues for the host system, but it does tend to mitigate the majority of issues that prevent the perception of system stability in comparison to Windows or Macs
Resources:
I’ve run Arch without swap for many years without issues. The key of course is that you need enough RAM for what you are trying to do with your computer.
There’s no reason why a 32GB RAM + 0GB swap system should have more problems than a 16GB RAM + 16GB swap system with the same workload. If anything, the former is going to run much better.
What is finicky about a swap file?
It’s just this:
mkswap -U clear --size 4G --file /swapfile swapon /swapfile
Done
If anything it’s way easier to create a file in your filesystem than having to (re-)partition your drive to have a swap partition. Much more flexible too if you want to change your swap configuration in the future.
I run a lot of VMs; I typically run 2 at the same time in addition to running other programs in the background, my usecase is more eccentric than most users in the Linux space which is already pretty niche
I’m using BTRFS with LUKS-based Full Disk Encryption, the last time I used swapfiles with BTRFS with FDE it was in 2019 and it was painful to say the least, I rememeber spending several weeks scouring Stack and the Arch forums in order to get it to work properly.
swapfiles are great in that you can resize them at will, however after trying all 3 options I found myself questioning when would I even want to resize swap for a single system, so at a certain point I felt that swapfiles were more of a gimmick cause again you don’t really want to depend on swap if can.
If what you’re doing involves using close to all of your system memory, it does make sense to add swap. So your use case is a good example actually.
I also have an old Arch PC that I use to run various VMs on (currently 6 VMs in use). It does have a swapfile, but the most swap I’ve ever seen in use is about 1GB.
Weird. Sounds like you may have painted yourself a bit into a corner by using BTRFS then. I use trusty old ext4 on top of LUKS FDE, no issues with swapfiles whatsoever.
That brings me to another downside of swap partitions: encryption. You can leak sensitive data through your swap partition, so it should be encrypted. If you use a plain partition, without LUKS in between, information in your swap is exposed. So you need to do more configuration to setup LUKS on your swap partition.
If you use a swapfile on an already encrypted filesystem though, you don’t have to worry about it.
Maybe your requirements change (e.g. “I want to be able to hibernate”), maybe your memory configuration changes, maybe you’ve underestimated or overestimated how much swap you need.
Case in point: the Arch PC I mentioned above only uses upto 1GB of swap, but it has a 16GB swapfile. This discussion has brought to my attention that perhaps I should downsize the swapfile a bit and free up disk space.
That is my position too. It’s always better to have a properly sized system, or limit what you push on an existing system. High swap usage rarely results in a good experience.
ZRAM bby
after a quick preliminary search,
a couple of things I’ve found out:
this might not necessarily be adopted by the mainstream desktop users, due to the nature of zram compressing data in addition to disallowing hibernation
to me atm; zram seems great for server based systems rather than for desktop users’ systems
one other method for zram mainstream adoption is to encourage an eccentric system that I’m currently using, which is to have the host system only contain minimal packages to run Virtual Machines:
sorry for the long comment!
stuff like this interests me the most so I’ve spent a lot of time in learning and tinkering around🤗
What? It’s not a jpeg file. It’s a lossless compression algorithm.
Speak for yourself, my compression algorithm works by discarding every third byte. I figure it’s good enough for most use cases.
if so that’s pretty dope!