如何解释“free -m”命令的输出?
free -m
的输出是:
total used free shared buffers cached Mem: 595 482 112 0 63 324 -/+ buffers/cache: 93 501 swap: 0 0 0
使用内存的哪个值是正确的,482还是93?
你有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
解释free
输出:
free
输出的第一行列出:
-
total
您的总体,物理(假设没有虚拟化)内存 -
used
目前使用了多少(按任何方式) -
free
多少是完全免费的(根本不使用) -
shared
(从来没有任何东西,忽略该列) -
buffers
内核缓冲区使用的内存 -
cached
用于cached
内存
最后两项(缓存和缓冲区)是未分配给特定用户进程的内存。 它是内核保留的内存,用于提高整体性能,但不是“应用程序”内存。 这些区域将根据缓存,内存压力,应用程序I / O模式等方面的内核策略而增长或缩小。
由于这两列不是用户分配的内存,并且区域可以缩小(实际上为零),如果用户分配需要它,它们在某种意义上是“免费的” – 如果您的应用程序可以由内核释放RAM积极地需要它。
这就是第二行告诉你的。 它从已used
列中删除缓冲区和缓存内存(这就是-
表示),并将它们添加( +
)到free
列。 (舍入问题将会发生。)
(最后一行显示交换空间的状态。)
礼貌: https : //unix.stackexchange.com/a/33549/14497
因此,在您的情况下, 112MB是完全可用的内存,如果您考虑用于缓存的内存,可以根据需要分配给用户应用程序; 然后501 MB是可供使用的实际最大内存。
@ 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
您可以阅读提交以释放(1)删除其仓库中的行。 还提交添加新的available
列 。
free
命令显示有关未使用和已用内存和交换空间的信息。
以下是http://www.linfo.org/free.html提供的解释
第一行标记为Mem ,显示物理内存利用率,包括分配给缓冲区和缓存的内存量。 缓冲区(也称为缓冲存储器)通常被定义为存储器的一部分,其被留作用于发送到外部设备(例如HDD,键盘,打印机或网络)或从外部设备接收的数据的临时保持位置。
第二行数据以– / + buffers / cache开头,显示当前用于系统缓冲区高速缓存的物理内存量。 这对于应用程序尤其有意义,因为通过使用read()和write()系统调用1从系统上的文件访问的所有数据都通过此缓存。 通过减少或消除读取或写入HDD或其他磁盘的需要,此高速缓存可以极大地加速对数据的访问。
第三行以Swap开头,显示了总交换空间以及当前使用的数量以及可用数量。
让我们分析一下系统的内存使用情况
您使用带有’-m’选项的free
命令,该选项用于以兆字节显示结果
-m, --mega Display the amount of memory in megabytes.
总内存为595(二手+免费)
使用:482免费:112
您的系统使用了595MB中的482MB,其中活动程序仅使用93MB,而缓存中仍有324MB
因此,当您将来运行任何程序时,请说需要更多120MB。 将给出所有112MB(当前免费),剩余的8MB将从非活动程序缓冲区/缓存中获取。
编辑 :找到此链接 ,提供了很好的解释。