如何正确查看Linux服务器可用内存

当我们使用 free 命令查看Linux服务器可用内存的时候,经常发现输出的第一行信息,free 字段为 0 的情况:


内存占用

此时,大可不必担心,为什么呢,咱们下面逐行分析一下:

因为第二行的 -/+ buffers/cache 中 free 字段还有 2G 的弹性空间

Mem 行(这一行大家应该都能看明白):

  • total 内存总数: 3G
  • used 已经使用的内存数: 3G
  • free 空闲的内存数: 0G
  • shared 当前已经废弃不用,总是0
  • buffers Buffer Cache内存数: 0G
  • cached Page Cache内存数: 2G

关系:total = used + free

-/+ buffers/cache 行:

-/+ buffers/cache的意思相当于:
-buffers/cache 的内存数:0G (等于Mem行的 used - buffers - cached)
+buffers/cache 的内存数: 2G (等于Mem行的 free + buffers + cached)

-buffers/cache 说的是被程序实实在在吃掉的内存
+buffers/cache 反映的是可以弹性调用的内存,也就是实际可用的内存

总结

为了提高磁盘存取效率,Linux做了一些精心的设计,采取了两种主要Cache方式:Buffer Cache和Page Cache。前者针对磁盘块的读写,后者针对文件inode的读写。这些Cache有效缩短了I/O系统调用(比如read,write,getdents)的时间。

你可能感兴趣的:(如何正确查看Linux服务器可用内存)