Mua*_*han 189 linux memory virtual-memory memory-usage
为什么我的服务器显示
total used free shared buffers cached
Mem: 12286456 11715372 571084 0 81912 6545228
-/+ buffers/cache: 5088232 7198224
Swap: 24571408 54528 24516880
Run Code Online (Sandbox Code Playgroud)
我不知道在 linux 中计算内存。我认为它说 5088232 用于 7198224 是免费的,这意味着它实际上消耗了 5GB 的 RAM?
sle*_*ske 246
第一行的意思是:
total:您的总(物理)RAM(不包括内核在启动时永久为自己保留的一小部分);这就是为什么它显示 ca。11.7 GiB,而不是您可能拥有的 12 GiB。
used:操作系统正在使用的内存。
free: 内存未使用。
shared/ buffers/ cached:该用于特定目的节目的内存使用情况,这些值包括在该值used。
第二行给出调整后的第一行值。它给出了used 减去总和buffers+cached的原始值和free 加上总和的原始值buffers+cached,因此它的标题。这些新值通常比第一行的值更有意义。
最后一行 ( Swap:) 提供有关交换空间使用情况的信息(即已临时移动到磁盘的内存内容)。
要真正理解这些数字的含义,您需要了解 Linux 中的虚拟内存 (VM) 子系统的一些背景知识。只是一个简短的版本:Linux(像大多数现代操作系统一样)将始终尝试使用可用 RAM 来缓存内容,因此Mem: free几乎总是非常低。因此显示了该行-/+ buffers/cache:,因为它显示了忽略缓存时有多少内存可用;如果内存不足,缓存将自动释放,因此它们并不重要。
如果行中的free值-/+ buffers/cache:变低,Linux 系统的内存就会非常低。
有关数字含义的更多详细信息,请参见例如问题:
请注意,freeprocps 3.3.10(2014 年发布)中的输出已更改。报告的列现在是"total", "used", "free", "shared", "buff/cache", "available",一些值的含义发生了变化,主要是为了更好地说明 Linux 内核的slab缓存。
有关动机,请参阅Debian 错误报告 #565518,以及从 14.04 到 16.04 的输出变化free是什么意思?了解更多详细信息。
Fli*_*imm 10
当前接受的2009 年答案已过时。确保您获得的信息是正确的并且与free(在 Debian 软件包procps中分发或在您的分发中等效)的版本相匹配很重要。这也有利于看的输出man free,并且还man 5 proc,其中包含有关信息/proc/meminfo,该文件free在Linux中获取数据。
默认情况下,free的输出以千字节为单位(1 千字节 = 1024 字节),如您在手册页中所见。我更喜欢使用-h显示后缀的参数,如下所示:
$ free -h
total used free shared buff/cache available
Mem: 15Gi 6.1Gi 1.9Gi 301Mi 7.5Gi 8.8Gi
Swap: 979Mi 0B 979Mi
Run Code Online (Sandbox Code Playgroud)
第一行的Mem意思是:
total(Mem): 总安装内存(即MemTotal来自/proc/meminfo),这是 RAM 中的所有内存used (Mem):已用内存,等于 total - free - buffers - cachefree(Mem):未使用的内存(即MemFree),这是 RAM 中任何东西(甚至缓存)都未使用的所有内存shared(Mem):这是主要用于tmpfs( Shmem)的内存量buff/cache(MEM),的总和buffers和cache:
buffers:内核缓冲区使用的内存(Buffers),这是内核可以利用的内存cache:页面缓存和slab(Cached和SReclaimable)使用的内存。该页面缓存包含缓存到RAM文件系统文件的内容,它通常是一件好事,这是一个高数字。我认为“slabs”是一个类似的缓存功能。available(Mem):这是估计有多少内存可用于启动新应用程序,无需交换。它包括该cache字段中计算的大部分内存(因为可以删除页面缓存以启动新应用程序),但它不计算交换(因为通常最好不要使用慢速交换空间)。第二行是Swap。这是我的解释:
total(Swap):这是为交换 ( SwapTotalin proc/meminfo)保留的磁盘空间总量。您可以通过检查这与swapon -s.used(Swap):当前正在使用的交换磁盘空间量。同样,您可以通过将其与swapon -sfree(Swap):当前未使用的交换磁盘空间量 ( SwapFreein /proc/meminfo)。它等于total (Swap) - used (Swap)| 归档时间: |
|
| 查看次数: |
242063 次 |
| 最近记录: |