After the installation of RHEL 7 we can see temporary filesystems in output of df. Whats the purpose of these filesystem I will explain in this article.
Okay, here is the output of df from RHEL 7.1 which is same for RHEL 7 as well. Filesystems in question are “/dev/” “/dev/shm” “/run” and “/sys/fs/cgroup”.
[root@Node71 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/rhel-root 11G 3.3G 7.1G 32% /
devtmpfs 908M 0 908M 0% /dev
tmpfs 917M 92K 917M 1% /dev/shm
tmpfs 917M 8.9M 908M 1% /run
tmpfs 917M 0 917M 0% /sys/fs/cgroup
/dev/sda1 497M 124M 373M 25% /boot
If you look closely three of them are of same size and devtmpfs is of bit different size.
RAM assigned to my test VM is 2GB. As all these are temporary filesystem so they are taking the space from the RAM. If we count all of them then total will become 3659 MB (3.5GB approx).
Now question arises how this is possible ?
Answer is these are virtual filesystem remember hence they are taking 3.5 GB RAM even though the system is having 2 GB RAM.
Another question may arise what will happen if all the filesystems got full ?
This condition can’t happen because the system would run into problems much before that. Lets see how much RAM they are currently using in blocks.
Here is how much memory is used by each filesystem (in 1k blocks):
Filesystem 1K-blocks Used Available Use% Mounted on
devtmpfs 928872 0 928872 0% /dev
tmpfs 938832 92 938740 1% /dev/shm
tmpfs 938832 9096 929736 1% /run
tmpfs 938832 0 938832 0% /sys/fs/cgroup
Total Used is : 9182
So, although all those filesystems together could use 3.5 GB, they are only using 9MB.
/dev is used to store device nodes. It should never claim to use memory.
/sys/fs/cgroup is used for cgroups. It will use very little memory.
/run is used for system logs, and other daemon related files. It is unlikely to grow to anywhere near the maximum size of the filesystem.
/dev/shm is used for temporary files. It is intended to be used for shared memory allocations.
Of all of these file systems, /dev/shm is the only one that normal users can write to, so the only one that may use a significant amount of memory.