结果解释

total:它向我们显示分配给机器的总内存,但再次显示给值不是实际值,因为它不包括为内核保留的少量 内存,在我的情况下,我的机器有 2048 MB,但其中它只显示 1896 MB,其中 152 MB 由内核保留用于引导目的

used:操作系统中进程使用的总内存

free:内存未使用

total (1869) = used (1398) + free (471)

-/+ buffers/cache

例如,第一个值:974 在我的例子中给出了 used 的原始值减去总和缓冲区 + 缓存

( 1398 - (400 + 24) ) = 974

第二个值例如:895 给出了免费的原始值加上总和缓冲区 + 缓存

( 471 + 24 + 400 = 895 ) = 895

最后一部分再次向我们显示分配的、使用的和空闲的交换内存总量,没有进行任何数学计算。

我们如何理解系统是否内存不足?

除非我们了解虚拟内存、已用内存和缓冲区/缓存之间的区别,否则这个问题的回答可能有点复杂。

大多数时候你观察到 free 命令的输出,空闲内存部分的值会很低,但相对来说 buffers+cache 的值会更高。
现在这实际上并不是一件坏事,因为操作系统保留了这些内存,通过将它们保存在缓存中来加速我们最常用的进程。
但是,如果执行了任何新进程并且系统内存不足,那么这些缓存将自动释放,以便为新进程的内存保留腾出空间。

如何释放缓存内存?

我们可以使用以下命令执行此操作

# echo 3 > /proc/sys/vm/drop_caches

这些是我们可以与上述命令一起使用的不同值
echo 1 只清除页面缓存
echo 2 是清除空闲的 dentry 和 inode
echo 3 正在清除页面缓存、dentry 和 inode

Linux 中 free 命令中的缓冲区/缓存是什么?

当我们运行 free 命令来查看 Linux 中的内存使用情况时,我们会得到类似的输出,如下所示

# free -m
             total       used       free     shared    buffers     cached
Mem:          1869       1398        471          0         24        400
-/+ buffers/cache:        974        895
Swap:         3999          0       3999

其中的 buffers/cache(缓冲区/缓存)是什么?

日期:2020-06-02 22:17:21 来源:oir作者:oir