【Linux】free命令查询服务器内存信息

Linux的free命令对于很多的Linux运维来说,应该是非常熟悉的了。但作为一个经常使用linux系统的小白来说,我们也需要了解一下free命令。
free 命令显示系统内存的使用情况,包括物理内存、交换内存(swap)和内核缓冲区内存。
free命令的返回结果有4行:标题行、Mem、-/+buffers/cache、Swap,下面逐一了解。

1、Mem行
显示物理内存情况。各列含义如下:
total    -->内存总量
used    -->使用内存
free    -->可用内存
shared    -->共享内存
buffers    -->buffer缓存,可回收
cached    -->cached缓存,可回收
总内存=使用的+可用的:Mem.total = used+free

2、-/+buffers/cache行
这里的buffers指Buffer cache(缓冲区缓存),cache指Page cache(页面缓存)。在当前的Linux内核中,Page cache是针对内存页的缓存。
也就是说,如果有内存是以page进行分配管理的,都可以使用Page cache作为其缓存来管理使用。
当然,不是所有的内存都是以页(page)进行管理的,也有很多是针对块(block),这部分内存使用如果要用到cache功能,则都集中到buffer cache中来使用。
真实可用的内存:-/+buffers/cache.free
(计算已使用内存时减去buffers/cache,计算可使用内存时加上buffers/cache。)

Mem行和buffers/cache行的各列计算关系如下:(M代表Mem行,B代表buffers/cache行)

 

3、Swap行
显示交换空间使用情况。
交换空间(swap space)是磁盘上的一块区域,可以是一个分区,也可以是一个文件。
当系统物理内存吃紧时,Linux会将内存中不常访问的数据保存到swap上,这样系统就有更多的物理内存为各个进程服务。
而当系统需要访问swap上存储的内容时,再将swap上的数据加载到内存中,这就是常说的换出和换入。
交换空间可以在一定程度上缓解内存不足的情况,但是它需要读写磁盘数据,所以性能不是很高。

4. free [-bkmgotV][-s <间隔秒数>]
usage: free [-b|-k|-m|-g|-h] [-l] [-o] [-t] [-s delay] [-c count] [-V]
  -b,-k,-m,-g show output in bytes, KB, MB, or GB
  -h human readable output (automatic unit scaling)
  -l show detailed low and high memory statistics
  -o use old format (no -/+buffers/cache line)
  -t display total for RAM + swap
  -s update every [delay] seconds
  -c update [count] times
  -a show available memory if exported by kernel (>80 characters per line)
  -V display version information and exit
参数说明:
-b  以Byte为单位显示内存使用情况。
-k  以KB为单位显示内存使用情况。(默认free)
-m  以MB为单位显示内存使用情况。
-g   以G为单位显示内存使用情况。
-h   自动取整数显示内存使用情况。
-o  不显示缓冲区调节列。 
-t  显示内存总和列。
-a   显示available内存
-V  显示版本信息。
-s<间隔秒数>  持续观察内存使用状况。

5秒查询一次,退出用ctrl+c

5. /proc/meminfo 文件
其实free命令中的信息都来自于/proc/meminfo文件。/proc/meminfo文件包含了更多更原始的信息,只是看起来不太直观:
cat /proc/meminfo

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章