I was studying the Linux Kernel Source , and came across this doubt . Does Linux use all of the physical memory (RAM) I have ? In both the outputs of /proc/meminfo and free -h , shows that 1.4 gigs is used and 1.6 gigs is cached , and the rest is "free" out of 32 Gigs . The available ram is the cached ram + reclaimable ram + free ram , right ? I went through the source code of /fs/proc/meminfo.c and it's polling ram usage from the sysinfo struct , so I browsed through /linux/include/uapi/Linux/sysinfo.h , over there freeram is available memory size . But again in meminfo.c , we are seeing MemFree as i.freeram ( here i is assigned to the structure of type sysinfo ) . so is free ram = available memory ? But then , I have free ram of 27 Gi , and available memory of 28 Gi , why is that ? And also , does the linux kernel use the amount of ram which is not used by applications as paging cache ? Say I have 4 gigs of ram , and Firefox is using 1 gig of it , the rest of RAM is used for disk/page caching or is it just unused and left there ? Thank you
On Tue, 17 Dec 2019 10:39:08 +0530, Neel chakraborty said:
Does Linux use all of the physical memory (RAM) I have ? In both the outputs of /proc/meminfo and free -h , shows that 1.4 gigs is used and 1.6 gigs is cached , and the rest is "free" out of 32 Gigs . The available ram is the cached ram + reclaimable ram + free ram , right ?
That probably means that the processes you have running use a total of 1.4G of ram, and you've referenced 1.6G of files on disk. The rest is free because you've not done anything to give the system even a hint of what to do with the other 27G of RAM. If you reference a whole bunch of files (find /usr -type f | xargs cat) > /dev/null or other similar), you'll see more gigs used for cache. If you run a few large processes, like a Chrome with 90 tabs open, you'll see the other number go up.
And also , does the linux kernel use the amount of ram which is not used by applications as paging cache ? Say I have 4 gigs of ram , and Firefox is using 1 gig of it , the rest of RAM is used for disk/page caching or is it just unused and left there ?
The kernel itself will use some of it, other processes will use some of it, and if there's any left, it will be used for disk caching - but not until a process has actually referenced data off the disk.
participants (2)
-
Neel chakraborty -
Valdis Klētnieks