输出中的第四列free名为shared。在互联网上我可以看到的大多数输出中,共享内存为零。但在我的电脑上不是这样:
$ 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
Run Code Online (Sandbox Code Playgroud)
这里也是输出的摘录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
=================================
Run Code Online (Sandbox Code Playgroud)
共享内存是什么意思?
问题 14102 中的主要答案说:共享:一个不再存在的概念。它留在输出中是为了向后兼容。对我来说看起来不够。“不存在”的概念不需要 600+ MB 的 RAM。
小智 7
“共享”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
Run Code Online (Sandbox Code Playgroud)
如果df将列出的所有 tmpfs 文件系统的使用大小(第 3 列)相加,您会发现总和等于“shared”和“shmem”。
| 归档时间: |
|
| 查看次数: |
15951 次 |
| 最近记录: |