Not sure why that is, but I have 32 GB of RAM and I would like my system to utilize it as much as possible, but as you can see in the screenshot, the system is only using 5.66 GB of the physical RAM, but swap is still being used in a high number. Is this normal? Should I lower the swappiness to lower than 10? Should I let it be?
Thanks
This is normal. This is a topic with a lot of complexities if you drill down into the details and history, but the tl;dr is certain system processes and other programs will preferably write data to swap because it’s so infrequently needed, and avoids massive slowdown if swap is needed, eg RAM filling, hibernation.
If you’re absolutely sure you’ll never exceed 32gb of RAM usage, you can turn the swap off. But you’re unlikely to notice a performance boost, Linux does (largely) know what it’s doing, moreso than you or I.
The TankieTanuki link is a good place to start to learn more if you really want to tweak it.
To put it another way you want to be using all of your RAM and swap. It becomes a problem if you are frequently reading from Swap. (Writing isn’t usually as much of an issue as they may be proactive writes in case more memory needs to be filled up).
Basically a perfect OS would use RAM + Swap such that the least disk reads need to be issued. This can mean swapping out some idle anonymous memory so that the space can be used as disk cache for some hotter data.
In this screenshot the OS decided that it was better to swap out 3GiB of something to use that space for the disk cache (“Cached” ). It is likely right about this decision (but is not always).
3 GiB does seem a bit high. But if you have lots of processes running that are using memory but are mostly idle it could definitely happen. For example in my case I often have lots of Language Servers running in my IDE, but many of them are for projects that I am not actively looking at so they are just waiting for something to happen. These often take lots of memory and it may make sense to swap these out until they are used again.
I’ll leave it alone. Thank you so much. I just wanted clarification
Strange, I also have 32GB of RAM, my swapiness is 15, and my swap is always at 0 bytes used…
The use case will change everything. OP is likely using much more memory than you are (especially disk cache usage) so the kernel decided to swap out some data. Maybe you aren’t using as much so it has no need.
I do have many things running and the CPU is working hard for sure. I didn’t even notice the cached part of RAM. So glad I just upgraded from 16 yesterday. Lol
I feel you. My swappiness is whatever is default in fedora and it’ll use like 20 gigs of RAM before anything goes into swap
how do you change swappiness?
through a kernel parameter, or permanently through sysctl
sudo nano /etc/sysctl.d/99-swappiness.conf
then add this line inside
vm.swappiness=10
Change the 10 any number you want
Let it be. The people designing the OS most likely know better than you or anyone else in this thread. I know the urge to “tweak” things is strong, but some defaults are defaults for a good reason.
Defaults are not always the best setting for a specific user or system. Defaults are often fail safe settings that should work on most systems out of the box. That does not mean other settings aren’t better on your system. Often you can tweak settings to get better results, that are best on YOUR machine and setup.
But only, if you know what you are doing, or if you want to learn about it.
But only, if you know what you are doing, or if you want to learn about it.
This is the crux of it though. Sure you can tweak your system but the average users doesn’t know what they are doing or where to learn more.
I’m not even convinced OP knows what problem they’re trying to solve
Pssshhh. I taught Torvalds how to code, how dare you. 😂
I also have a 32gb RAM (30.5 GiB) and a swappiness value of 10. My entire swap is full and my RAM is only filled up to about 3.8 GiB. However my swap is just 512mb small (its not a typo, it’s half a GB). You should not worry too much, even if the swap is in use, because those parts are probably like “parked” ram area that is not in use for a while now and waiting “to be waken up”. And the performance penalty is not that big, if the swap is on a fast NVME SSD. In old days on old slow spinning hard drives, the penalty for using swap was huge (plus the Kernel and rest of operating system was not fine tuned as today).
Some related commands to check:
grep -H swappiness /etc/sysctl.d/*.conf swapon --show free cat /proc/meminfo
Here is an interesting article: https://chrisdown.name/2018/01/02/in-defence-of-swap.html
Thank you. I like those commands.
It is probably normal. Don’t decrease your swappiness too much.
I think it happened the following way:
See the “cached” ram is taking 19 gigs. Theese cached ram improves performance by keeping frequently used system files on ram. So the actual occupied amount of ram would be 5+19 ≈ 25gb. Thoose system files might be used more than other app’s ram so that they have higher priority to be in ram. So at the time you opened certain other applications, the total ram usage including cached might be a little over the availiable ram and likely got swapped. The once swapped thing won’t be cleared immediately or with any much priority. I often see swapped contents remain even after closing a bunch of apps which gave empty space in ram.
So its just normal but is it using swap without once opening enough apps to fill the availiable space with used+cached? If so I would also be concerned
Damn. I actually didn’t even pay attention to the cached part, nor have I ever even known what it was for. Makes sense now. Thank you.
swap is usually significantly slower than ram; are you certain that you wan to use that instead?
The other way around. I want the system to use all of my RAM. I paid good money for it, might as well use it all. Unused RAM is wasted RAM, right?
i see it as more a capability that i don’t always need beyond the minimum; but if you feel about it like this, you can also disable swap all together.
I think you misread, OP is saying the system is using to little ram and too much swap.
that makes much more sense; thanks for the correction.
There is a common misconception that swappiness affects the memory threshold or prevents using swap space, but it only affects the preference for freeing up file pages over swap. See: this article for a more detailed explanation or the kernel source code where it is used.
I love those links. Thank you.
Do you have zram set up?
I’ve always thought that zram was a Fedora thing. Lol.
I don’t have it setup, no.Surprised I had to scroll so far to find this comment. I would be concerned about SSD longevity if my swap was doing that, but zram kind of negates that problem.
if you really feel the need to fuss with it then replace with swap on zram
You probably just had a program(s) use a lot of ram and that pushed some processes to swap. When the system needs it, it will be moved back. I’d +1 on setting up zram. Can be setup easily on most distros.
You should set it back to whatever it was. It shows 5.6 GB in active use and 19 GB used for cache. You’re already using all your RAM, just not actively. You don’t sit on 100% of the chairs in your house at once either. 3 GB swap used is very low usage, which is expected when you’re not actively using a lot of memory.
Don’t mess with things you don’t understand, especially when you don’t have an actual problem. You’re going to end up breaking things. (Which, to be fair, is one way to learn, but at the cost of breakage.)
3 GB swap usage is usually very unpleasant in my experience when the swap is on a HDD. and no thabks, I won’t move the swap to the SSD to kill it earlier
19 GB cache is worthless after you have just moved a lot of files, large in total size. very few useful things remain in there, while your program will get swapped out unnecessarily
While I appreciate your comment, I disagree on the last part. Fucking shit up is what got me into IT to make a decent living and take care of my family. All the fucking shit up is at home on my personal PC of course 😂
Your comment was great, until the last part. That’s terrible advice. DO mess with things you don’t understand, until you understand them!
Don’t mess with things you don’t understand.
Don’t listen to this advice. Messing with things you don’t understand is how you learn your OS. Mess with it, break it, then RTFM and fix it. That’s how ya learn!!
Learning by doing, but make backups.
That’s great if you treat your computer as a toy. But if you actually need it to do work then that’s terrible advice.
Destroy a virtual machine first, not your actual computer.
I have a whole machine that I don’t touch for stuff like this to get my actual work done on. This one is for learning and fucking shit up. Lol
Or just RTFM first and learn without breaking stuff.
Pain is the best teacher.
That’s not any fun
pretty much. learning things without a corresponding “oh… shit.” moment, just never quite stick with you the same way.
This is 100% it. The sleepless nights I’ve spent hunting for solutions after nuking everything, taught me a great deal. It was even so much fun, too.
No fun. Nothing learned.
Nah, without breaking stuff, you never really learn
Hands-on experience is important.
Edit: obviously don’t do this with production machines, but I thought that was given…
Nah, homie, fucking shit up then spending your whole evening looking for solutions is what makes it so much fun. lol
If your googling is about to take you to the arch wiki, you’re having a good night!
you should especially do this on Friday 5:00pm in production, right before going on an international vacation with bad Internet.
I’ve had to explain to three different people that they’re not getting a production window on Christmas Eve. I’m the only person in the office from the day after Christmas until January 2.
😂 I love this.
This!
You’re not going to cause any permanent damage to your system messing around with system settings.