缓冲区/caching线在输出中的含义是免费的

为什么我的服务器显示

total used free shared buffers cached Mem: 12286456 11715372 571084 0 81912 6545228 -/+ buffers/cache: 5088232 7198224 Swap: 24571408 54528 24516880 

我不知道在linux中计算内存。 我认为它说5088232用于7198224是免费的,这意味着它实际上消耗5GB的RAM?

    价值的含义

    第一行意味着:

    • total :您的总体(物理)RAM(不包括内核在启动时永久保留的一小部分内存); 这就是为什么它显示约。 11.7 GiB,而不是12 GiB,你可能有。
    • used :操作系统正在使用的内存。
    • free :内存不在使用中。

    total = used + free

    • shared / buffers / cached :这显示了特定用途的内存使用情况,这些值包含在使用的值中。

    第二行给出调整的第一行值。 它给出了used的原始值减去总和buffers+cached和原始值free 总和buffers+cached ,因此它的标题。 这些新的价值往往比第一线的价值更有意义。

    最后一行( Swap:提供了有关交换空间使用情况的信息(即,已暂时移到磁盘的内存内容)。

    背景

    为了真正理解这些数字的含义,你需要一些关于Linux中的虚拟内存(VM)子系统的背景知识。 只是一个简短的版本:Linux(像大多数现代操作系统)将总是试图使用免费的RAMcaching的东西,所以Mem: free将几乎总是非常低。 因此会显示line -/+ buffers/cache:因为它显示忽略高速caching时有多less内存是空闲的; 如果内存稀less,caching将自动释放,所以它们并不重要。

    如果-/+ buffers/cache:行中的free值变低,那么Linux系统的内存真的很低。

    有关数字含义的更多细节,请参阅如下问题:

    • 在Linux中,free命令报告的“buffers”和“cache”有什么区别?
    • 为什么Red Hat Linux在系统上报告的空闲内存比实际可用的less?

    procps 3.3.10的变化

    请注意,procps 3.3.10(2014年发布)中free的输出发生了变化。 所报告的列现在是“总计”,“使用”,“免费”,“共享”,“缓冲/caching”,“可用” ,以及一些值的含义改变,主要是为了更好地说明Linux内核的板caching。

    请参阅Debian Bug报告#565518的动机,以及free输出从14.04到16.04的变化是什么意思? 了解更多详细信息。

    对于任何需要更简单,一步一步解释的人来说,请查看http://thoughtsbyclayg.blogspot.com/2008/09/display-free-memory-on-linux-ubuntu.html ,他的解释帮了我很多。

    缓冲区/高速caching行显示程序使用了多less内存(第一列),对于要使用的程序是免费的(第二列)。 这是一个相当深奥的数字,而不是在实践中真正看的东西。