`free`:输出格式

`free`:输出格式

我用来free获取某些服务器上的可用空间量。它的输出类似于:

$ free -m
             total       used       free     shared    buffers     cached
Mem:           374        366          8          0         58         98
-/+ buffers/cache:        209        165
Swap:         1906        120       1785

我到底有多少可用空间?

答案1

输出的第一行free列出:

  • total您的总物理内存(假设没有虚拟化)
  • used目前(任何事物)使用了多少
  • free其中有多少是完全免费的(根本没有使用)
  • shared tmpfs 使用的内存(大部分)(对于 Linux,内核 >= 2.6.32)
  • buffers内核缓冲区使用的内存
  • cached用于缓存的内存

最后两项,高速缓存和缓冲区,是未分配给特定用户进程的内存。它是内核为提高整体性能而保留的内存,但不是“应用程序”内存。这些区域将根据缓存、内存压力、应用程序 I/O 模式等方面的内核策略而增大或缩小。

由于这两列不是用户分配的内存,并且如果用户分配需要,区域可以缩小(实际上为零),因此它们在某种意义上是“免费的”——如果您的应用程序有内核可以释放的 RAM积极需要它。

这就是第二行告诉你的。它从列中删除缓冲区和高速缓存内存used(这就是意思-),并将+它们添加到free列中 ( )。 (会发生舍入问题。)

(最后一行显示交换空间的状态。)

答案2

没有交换,您的实际可用空间是 165。使用缓存,您有 8MB 可用空间。如果没有缓存,您还有 165MB 的可用空间。-/+线路没有缓存。第一行是缓存。

相关内容