1

from past several days, a weird problem is worrying me. My fedora takes too much RAM than usual, on idle the usual RAM usage is around 2 GB, but it hikes up to more than 5.2 Gb which mostly results in the crash of my DE. I checked the list of processed running and I dont see the list showing any process taking more than 300 mb of RAM, even if I sum them up, total ram usage of processes dont add up to 5 GB. I cant find relevant answers for a fix on forums. If anyone can suggest a fix, I will appreciate it. Thank you Distro: Fedora 36 Kernel: 5.18.11-200.fc36.x86_64 DE: GNOME 42.3.1

3
  • 4
    Where (how) do you get the info about your "RAM usage" ?
    – MC68020
    Jul 20, 2022 at 12:34
  • And of course, the output of cat /proc/meminfo would be welcomed displayed as part of your question.
    – MC68020
    Jul 20, 2022 at 13:39
  • 1
    Fedora mounts /tmp as tmpfs - if you have a ton of space occupied in /tmp that would explain everything. Jul 20, 2022 at 14:11

1 Answer 1

0

It is tricky to determine how much of RAM each process owns. Numbers you see in the various tools often display how much memory is mapped into the process's address space. But, some memory may be mapped to more than one process — so when you add up their usage that shared part should not be added. Some memory may be shared by many processes. Some memory may be mapped into the process twice.

Therefore, "memory usage" for each process is useful only for considering each process individually, but it should not be added — you never know how much of that memory is shared and what is sharing depth. It is incorrect to sum those values, the result will be overestimage does not correspond to any thing real in the computer. On the other hand, if you are going to sum just memory unique to the processes, you'll fall into great underestimate. So never sum them. Rely on the values for "available" memory that the system reports.

Another widely known misunderstanding is what Linux considers "free" memory is technically not the thing you should be worried about. What you should look at is available memory; technically that's "free plus buffers plus cached". Buffers and cache will be freed immediately upon application request; that's just "the memory was unused so Linux used it to speed up the computer because otherwise the more memory would be just wasted money, but it promises to release it once somebody needs it". See also explanations here: https://www.linuxatemyram.com/ .

Crashes due to insufficient memory are caused by kernel's out of memory killer (OOM-killer). If it is the culprit, it will definitely register its actions in dmesg, along with circumstances. In short, if there is really insufficient memory, it chooses the "worst" fat process and kills it, freeing the memory. Definitely check for that, if you suspect memory overflow. If no OOM killer actions are logged, your crashes are not because of high memory usage.

2
  • 1
    Regarding your last paragraph : Your system should not crash because of the OOM-Killer since it aims at preventing system crashes. Might depend on /proc/sys/vm/panic_on_oom settings though.
    – MC68020
    Jul 20, 2022 at 14:14
  • You mean, the application crashes itself when it detects that memory can not be allocated before OOM-killer has a chance to kill it? Yes, that's a possible scenario. Still I'm think this is not very pleasant behavior of an application: if you were recognized the problem, try to resolve it. If you are going to die anyway, don't obscure the cause. Jul 21, 2022 at 5:05

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .