- cross-posted to:
- [email protected]
The trick is to first create a RAM disk. Then put the swap file on there and it’s about as fast as RAM. Then, with the new memory you have created, make another RAM disk. Yep, then make more swap space on there.
I have solved both the memory and SSD availability issues with this infinite RAM and disk space trick.
ACPI S4 Hibernation would like to have a word with you
I basically never used swap until I used some script that was supposed to de-duplicate text messages from SMS backups.
Turns out feeding it a 100,000 message archive spanning back 15 years will somehow eat up ~80GB of RAM. I doubt it should, I guess it probably just wasn’t optimized for such a large amount.
So I made a 64GB swap file and it completed fine.
Not everything should work from ram. This is why we stream files for processing.
The backup itself was only ~8gb.
Swap is there an emergency relief for when a runaway process starts to eat all the resources. The system gets slow the user says hey what’s that? They look and see oh wow this one process is really eating a lot of resources that’s bad, can I kill it or do I need to gracefully try to shut it down. Swap buys you time when it could matter. When you don’t have swap OOM killer takes out whatever it wants and for a desktop user that may not be that big of a deal but for a server the database is likely the first target that is taken out.
you misunderstand the meme (of course it doesn’t help either); because the alternative isn’t “no swap”, but rather “use a swap file instead of swap partition”
My 64GiB are enough for my tasks, i don’t use swap.
I may consider it for laptops but only for hibernation purposes.ZFS chuckles darkly in the corner
SWAP RAM is useful for hibernation mode and fall back ram incase you have low memory.
Also for when you, for whatever reason, run out of physical memory.
Who here worries torturing their SSDs? Those things will last lifetimes compared to HDD’s of the past (or present).
also in case you have too many electron shits open
Can anyone tell me why I see swap usage with 10+GB of free RAM available?
If you(or your distro) use zram then the zram usage may also count as swap in resource monitors. For me this was the case when i saw swap usage where it is clearly not needed to swap. You can check it with
swaponcommands.Other reason is that more frequently accesed files may be cached to ram and less important stuff gets swapped. But if you notice swap being used while total ram usage including cached is much lower than total, then its probably zram(and it does write to disk so dont worry about that)
Swappiness set to over 9000!
Saving ram to swap can be done with minimal impact. Helpful when you run out of memory and that 2gb app idling can be dumped right away instead of waiting for it to be copied to swap.
but that’s not what’s happening. processes do actually get removed from RAM, and when they are needed they are very slow until they are loaded back. the system thinks it’s more valuable to have that memory be filesystem cache
If true then Linux is a decade behind windows and macOS.
tbh windows was doing this very aggressively on my system, it was swapping like a mad man right when memory usage reached 50%
Doubt. It might be copying to swap, but not reading from it.
Because you just taught your computer how to be lazy. “oH lOoK aT mE i’M sWaP mEmOrY”
> linuxmemes
> macos screenshot
ಠ_ಠ
Shit did I botch it? I made this on my phone and the toot I copied the script from was just text. Wanted to make it look more interesting so I found this site that let you make the windows. I just went with what I thought looked best.
That makes it funnier ngl
Is this tongue in cheek i swear I cannot tell any longer.
Some swap is beneficial
It’s based on a common meme template. Yeah it’s tongue in cheek and I guess a lot of commenters can’t tell given this is a memes comm
Like a lot of memes, they exaggerate for humor. This meme was originally about math.
I hope the phone is running PostmarketOS ;)
TBH I’m sure you could configure a linux terminal to look like that, but yeah it looks very default macos to me
Idk. KDE has themes like this but yeah I get it
i’m sure someone has made a KDE theme or a Gnome theme that replicates MacOS, let’s pretend that’s what’s happened.
I mean… ElementryOS exists.
Once tortured myself with having to go through…
The Android build system. Booo, scary.
I only wanted a LineageOS boot image built. The recommended specs list 64GiB RAM. Figured wouldn’t apply to me until I tried to build a target literally called “nothing”. It just used up all of the RAM and OOMed about 2 minutes in, building the “build cache” or whatever the fuck it needs to do to “warm up”.
After a few fucktons of swapspace, turning off some of my daemons, some sysctl fuckery (there were options for limiting process virtual memory size IIRC? I put it all the way up) and
taskset -p 0-15:1(use logical CPUs 0, 2, 4…), I had my laptop allocating 50 something GiB. I have 16GB (decimal) physical RAM installed and I consider that already way too much for my usual needs.After about half an hour of the build system build systeming, it just stopped doing that then built the kernel in 4 minutes with everything else in some time too.
Yes, I have tried just running make directly. That just resulted in an image that did nothing but toggle on and off an empty (no percentage) charging circle via power button.
I used to be this guy. We have huge amount of memory in our storage server. Why would we need swap? Well, once the system started killing programs I read up on swap and how the system handles its caches, especially ZFS ARC.
Short version is that while the system can evict its caches syncronously, it can only async notify ZFS that it should also shrink its caches, but the out-of-memory killer will start killing before ZFS and its kernel counterpart can start to free up memory.
A tiny bit of swap completely solved this, since swapping is sync for the kernel and the OOM killer will wait for it.
As well as oom situations, swapping allows the memory to be used more effectively by swapping out anonymous pages that aren’t likely to be used but can’t be dropped.
I found that with swap the applications would slow to a crawl and then basically lock up entirely until I hauled my ass over and manually power cycled the machine.
I sometimes cannot do hibernate when I did a scrub on my ZFS. But the first try always frees up the swap and so the second attempts works every time.
There are good use cases for swap. I work with very performance sensitive memory hogging applications that tend to process in bursts as incoming batched data arrives. We also have a lot of required background “security” applications.
Having the idle applications move out to swap so that a significant amount of free RAM to allow for the active, real-time applications to expand into is a major boon. RAM is expensive now, so it’s become even more critical to not waste it.
But even in self-hosting at home I take advantage of it since I have a limited number of servers with limited RAM and a bunch of applications and/or docker containers running, many of which don’t need to be active at all times, but if they were all active, would have trouble with the limited RAM. Swap allows for inactive applications to free up RAM for the active ones and leave enough available at all times to allow an application to quickly spin up new jobs.
Anyway, sure, for a simple desktop computer without a bunch of junk background applications running for “security” or whatever, and an overabundance of RAM installed, it’s probably not useful. But for high performance, memory hungry applications with lots of background stuff running, it can be a big help.
That said, there are use cases where the opposite is useful and using a RAM drive is better than writing to disk for cache and temporary logs when you have enough RAM. My opnsense router for instance uses a RAM drive to store cache and logs (logs are mirrored to the NAS for long term storage, so just the local copy is lost on reboot). That system has enough RAM and I’d rather reduce disk wear, and I don’t plan to add too many other applications to that server that it would run low.
Its a meme built on stuff like this:
https://gist.github.com/joshenders/c4960cec9c63a7b7d68ffa9543356c43
Actually, there are more than these. For example, hibernation and/or hybrid suspension. It’s, AFAIK, mandatory to have a swap partition to be able to hibernate and/or hybrid suspend your device.
I also found it useful to do some one-off batch processing of a big file without thinking of chunking and doing too complicated things. Imagine something like a 60GB file in a custom format that need to be deduplicated. It’s easier to just load it all up in memory and do run the algorithm 2-3x slower using a 50GB swapfile than spend hours to complicate the algorithm.
Yep. That’s why it can be nice to just have like an old 1TB drive completely used for swap. Things might get slow once it exceeds your physical memory, but at least it will eventually finish successfully – no out of memory crashes here!
“I’m not a friggin bear, I don’t hibernate!”
Yes, swap partitions are shit.
The real hotness is swap drives.
Just the use that your old 64GB SSDs were waiting for!
(Fun fact: in Linux, if you have multiple swap partitions mounted, the kernel will automatically use striping (like RAID) in order to read and write from them as fast as possible. If you have multiple small SSDs used for swap, the read/write speed from swap can actually become pretty fast.)
How many SSDs do you need for it to match the speed of RAM? Can I use this to make cheap RAM?
I just download more ram. Know your tech!!
You’re going to run into issues with your motherboard’s SATA or NVME (or PCIE) controller throughput well before you get close to actual RAM speeds.
Once you reach that bottleneck, the speed won’t increase anymore when you add more drives. The motherboard architecture just doesn’t support accessing any kind of storage device at that speed.
I did a (very) quick search and they should just sum up, so for example a raid of 2 sata SSD with 64gb that can reach 500MB/s will have a total speed of 1GB/s,
DDR3 ram can get up to 17GB/s so we would need 34 drives to get DDR3 speeds (not very fast BUT you would be the person with most ““RAM”” in the city without being a data center)
do you encrypt your swap drive? would this work with LUKS?
It works fine. The only partition that needs to be unencrypted on a modern hardrive is the esp/boot partition.
I do not. No idea how this interacts with swap encryption.
Everyone defending swap like crazy in the comments… so let me give a counter argument specifically for desktop:
Many years ago I stopped using swap on all my computers (I exclusively use linux) and the reason is: every time anything regarding interactivity went to swap, my system would freeze and literally become unusable for a really long time until I killed something. Since I got tired if that behaviour I decided I prefer for random shit to die but my computer still be usable.
It wasn’t very often, but I don’t get OOM killer often either (as in I don’t remember the last time it happened and I use linux every day for both work and fun), and the freezing situation was way more annoying, to the point I sometimes ended up cold switching off the computer. I’m surprised on how many people run out of memory constantly. I guess you all are just using linux for servers and have crazy processing of infinite data…
Were you using a HDD for swap? It’s nearly unnoticeable on an NVMe drive.
yep it was HDD, but with the low amount of times I have any OOM issue, I’m way more worried about NVMe flash burning than a random process being killed once every blue moon.
In fact I didn’t mention, but since the advent of flash drives what I’ve done is trying to locate heavy disk writing apps and find alternatives for them, amid disabling many logs.
For swap, it hunts me to think some automatic process I don’t have control over will burn those sweet erase cycles without me noticing just because someone programmed it poorly. I’m way more happy knowing I have some control over it.
Or shotcut. I once ran it on 8GB, minimal arch with no swap. Well.
And I’m not even trying to build android on my new relatively modern laptop. It won’t work.













