输出中的第四列free
名为共享。在我可以在互联网上看到的大多数输出中,共享内存为零。但我的电脑上却不是这样:
$ free -h
total used free shared buff/cache available
Mem: 7,7G 3,8G 1,1G 611M 2,8G 3,0G
Swap: 3,8G 0B 3,8G
这也是输出的摘录ps_mem.py
:
Private + Shared = RAM used Program
---------------------------------
21.4 MiB + 1.0 MiB = 22.4 MiB bash (9)
29.2 MiB + 5.3 MiB = 34.5 MiB Xorg
35.9 MiB + 858.5 KiB = 36.7 MiB tor
42.9 MiB + 9.6 MiB = 52.5 MiB urxvt (16)
121.0 MiB + 24.9 MiB = 145.8 MiB okular (2)
151.8 MiB + 2.8 MiB = 154.6 MiB soffice.bin
3.7 GiB + 209.3 MiB = 4.0 GiB chromium (39)
---------------------------------
4.6 GiB
=================================
a 是什么意思共享记忆?
问题 14102 的主要答案是:共享:一个不再存在的概念。它保留在输出中以实现向后兼容性。对我来说看起来不够。 “不存在”的概念不会占用 600+ MB 的 RAM。
答案1
其中的“shared”free
和“Shmem”/proc/meminfo
统计了tmpfs文件系统(内存中的文件系统)使用的所有内存以及共享内存(由 分配shmget(2)
)。这记录在https://www.kernel.org/doc/Documentation/filesystems/tmpfs.txt。
这是我的一台服务器的示例:
$ free -k
total used free shared buff/cache available
Mem: 264036296 1275384 254696692 1182024 8064220 260536208
Swap: 63998972 0 63998972
$ grep Shmem /proc/meminfo
Shmem: 1182024 kB
$ df -BK | grep tmpfs
tmpfs 26403632K 51424K 26352208K 1% /run
tmpfs 132018148K 224K 132017924K 1% /dev/shm
tmpfs 5120K 4K 5116K 1% /run/lock
tmpfs 132018148K 0K 132018148K 0% /sys/fs/cgroup
tmpfs 251658240K 1129036K 250529204K 1% /run/shm
tmpfs 26403632K 24K 26403608K 1% /run/user/108
tmpfs 26403632K 0K 26403632K 0% /run/user/5800006
如果将 列出的所有 tmpfs 文件系统的已用大小(第三列)相加df
,您会发现总和等于“shared”和“shmem”。