tl;dr version: The amount of RAM that Windows shows as "in use" on an idle system is almost always practically meaningless.
First, let's explain some labels and see how things add up, or don't:
From your Resource Monitor screen cap... "Available" is RAM that is available for immediate assignment in order to resolve a page fault. "Available" is the sum of "Standby" and "Free". This is because "Standby" memory is just as available for immediate use as "Free".
So, Standby 1211 MB + Free 4709 MB = 5920 MB Available. That works.
"In use" from Task Manager is approximately "Total" less "Available". 8147 Total - 5920 Available = 2227 MB. This matches your "2.2 GB in use" on the Task Manager display.
(Remember that to go from MB to GB you need to divide by 1,024, because Windows stupidly uses SI prefixes to mean powers of 1024.)
The Task Manager's "cached" counter is tricky. It is the sum of the standby page list (which, as mentioned, includes both the SuperFetch cache and the virtual memory page cache) plus the reactive file cache... which is part of kernel address space, is pageable, and is also included in the "in use" counter.
Therefore, if you're trying to add things up to figure out "where all my RAM went", it is an error to include "cached" in the sum; doing so will give you a total that's too large, as you'll be counting the standby list and part of "in use" twice. (Sometimes it gives you a total that's more than the total RAM!)
Incidentally there is another list, the "Zero" or "Zeroed" page list, which the resource monitor display simply includes in "Free"; for most "where's my RAM" questions the distinction between "Free" and "Zeroed" is insignificant.
I don't understand why I have 5,7GB available, sometimes as low as 4GB in idle.
Windows is a demand-paged virtual memory operating system. "Demand-paged" means that pages of code and data are not, generally, brought into RAM until and unless they are referenced. Each time you reference a page that's not in RAM, a page of RAM must be removed from one of the "available" lists (zeroed, free, or standby) and assigned to the process that needs it. It then gets counted as "in use", and is counted in the process "working set". (Pages are 4 KB.)
This sequence is a "page fault" - a "hard page fault" if it meant reading from disk (or SSD). And we say that the page has been "paged in".
(Many page faults are actually resolved without having to go to disk. Those are called "soft page faults". Needless to say this is much faster than going to disk. Often they are resolved to pages that are on the Standby list - that's the "virtual memory page cache" function I mentioned previously. I won't get further into that here.)
However the term "demand-paged" also applies to allocation of physical memory (RAM). A process that's experiencing a high page fault rate + a lot of CPU time (i.e. a high demand for RAM) will be allowed to use more RAM; less-busy processes get their working sets trimmed back. If available RAM is plentiful (as it is in the cases you describe) processes are generally allowed to just fault stuff in and keep it - because, why not, if RAM is plentiful?
But if demands for RAM increase and available RAM gets scarce, then previously-bloated processes will be trimmed to make more RAM available for the recently-busy processes.
And of course you know that no modern operating system is ever completely idle? There are always background maintenance tasks, and they need RAM to work in. If there is plenty of RAM (as there is on your machine) they will be allowed to use a fair amount of it, not because they "need that much" but because nothing else is running that needs it. But if you then run a RAM-intensive program, these background processes will be put back in their place, so to speak, so that more RAM is available for what you're actively working on.
It's therefore a mistake to look at an idle Windows system and say "oh, Windows takes x amount of RAM just when it's idle!" x depends hugely on how much RAM there is total, how long it's been idle, what stuff you've installed that added various "idle tasks" to the system, and even what it was doing before it was idle. So it will vary a lot from one system to another.
Nor does the observation that "it's using x amount of RAM when idle" on your system mean that Windows will keep that much for itself when you start a RAM-intensive program. It just means that's how much it's using right now, under present conditions, as influenced by many things that went on recently.
2
Possible duplicate of How does memory/commit charge work in Windows 10?
– Overmind – 2017-06-16T10:13:38.787No not really, @u-dju just wanted a broad idea of how works free memory in Windows. – Wassim Dhif – 2017-06-16T10:59:39.067