amo*_*ooc 60 command-line memory-usage ram
的输出free -m
是:
total used free shared buffers cached
Mem: 595 482 112 0 63 324
-/+ buffers/cache: 93 501
swap: 0 0 0
Run Code Online (Sandbox Code Playgroud)
已用内存的哪个值是正确的,482 还是 93?
Nan*_*nne 45
您有 112 MB 的完全空闲内存,但您看到的 501 MB 没有“缓存”内存。这意味着操作系统已将一些内容放入您的内存中以加快速度。它称其为“已使用”(因此您的“免费”号码仅为 112),但如果您需要,它实际上可供您使用。
这是一件好事,因为未使用的内存就是无用的内存。如果需要,可以清除缓存的内存。这里不需要人们过去为 Windows 95 做的旧的“我需要清理内存”的东西:一切都很好,很开心:)
您要查找的号码是501免费(以兆字节为单位,因为-m
)。
请参阅这些页面以供参考:
http://www.linuxatemyram.com/
http://www.itworld.com/it-managementstrategy/280695/making-sense-memory-usage-linux
saj*_*i89 28
解释输出free
:输出列表
的第一行free
:
total
您的总物理(假设没有虚拟化)内存used
目前使用了多少(任何东西)free
其中有多少是完全免费的(根本没有使用)shared
(从来没有任何东西,忽略该列)buffers
内核缓冲区使用的内存cached
用于缓存的内存最后两项,缓存和缓冲区,是未分配给特定用户进程的内存。它是内核为提高整体性能而保留的内存,但不是“应用程序”内存。这些区域将根据与缓存、内存压力、应用程序 I/O 模式等相关的内核策略而增长或缩小。
由于这两列不是用户分配的内存,并且如果用户分配需要,区域可以缩小(实际上为零),因此它们在某种意义上是“免费的”-如果您的应用程序可以由内核释放内存积极需要它。
这就是第二行告诉你的。它从used
列中删除缓冲区和高速缓存内存(这就是-
意思),并将 ( +
) 它们添加到free
列中。(四舍五入的问题会发生。)
(最后一行显示交换空间的状态。)
礼貌: https : //unix.stackexchange.com/a/33549/14497
因此,在您的情况下,112MB是完全可用的内存,如果您考虑用于缓存的内存,可以在需要时分配给用户应用程序;那么501 MB是实际可用的最大内存。
Pau*_*rth 13
@saji89 的答案非常好,但现在free -m
不再打印该-/+ buffers/cache
行,而是将可用 RAM 量available
放在第一行的新列中,例如:
ubuntu@pg_master:~$ free -m
total used free shared buff/cache available
Mem: 61406 1571 506 17131 59328 42150
Swap: 0 0 0
ubuntu@pg_master:~$ free -V
free from procps-ng 3.3.10
Run Code Online (Sandbox Code Playgroud)
您可以阅读在其 repo中删除该行的 free(1) 提交。还提交添加新available
列。