如果我理解正确,在 free 生成的以下输出中,3535m 是应用程序可用的实际可用内存,仅使用了 413m,这是正确的吗?需要澄清一下 Mem 和 -/+ 缓冲区/缓存行之间的区别。
自由 -m 缓存的已用空闲共享缓冲区总数 电话:3949 3854 95 0 9 3431 -/+ 缓冲区/缓存:413 3535 掉期:2047 1322 725
Linux 发行版倾向于(但不是必需的)包含free
from procps,这可以很好地简洁地显示内存消耗:
# free -m
total used free shared buff/cache available
Mem: 7688 5027 180 827 2479 1589
Swap: 8189 2082 6106
Run Code Online (Sandbox Code Playgroud)
为了在 BSD 中近似这一点,我尝试了许多不同的项目,但它们都给了我不同的答案(大概是因为它们有不同的上下文?)。例如:
# sysctl -a |grep Memory
Virtual Memory: (Total: 1077397132K, Active 3458308K)
Real Memory: (Total: 1171952K Active 975744K)
Shared Virtual Memory: (Total: 56264K Active: 38652K)
Shared Real Memory: (Total: 22184K Active: 19700K)
Free Memory Pages: 1664588K
# sysctl hw |awk '/mem:/ { printf "%s %.0fM\n", $1, $2/1024^2 }'
hw.physmem: 32756M …
Run Code Online (Sandbox Code Playgroud)