free命令详解(内存)

free命令用于系统内存使用情况的查询,包括空闲内存、已用内存、用于交换的内存,以及被内核使用的缓冲区和缓存信息

用法:

  free [options]

常用选项:

  -h:便于阅读方式

  -c#:显示次数

  -s#:次数间隔(秒)

[root@aliyun ~]# free -h 
              total        used        free      shared  buff/cache   available
Mem:           1.8G        829M         66M        368K        943M        834M
Swap:            0B          0B          0B

free从/proc/meninfo收集到以下信息:

Men:内存的使用情况

Swap:交换空间的使用情况

total:总内存

used:已经使用的内存

shared:共享内存(主要被tmpfs使用的内存)

buff/cache:buff和cache的和

available:启动新进程时可用的内存

 

解读:

buffer 在操作系统中指 buffer cache, 中文一般翻译为 "缓冲区"。

cache 在操作系统中指 page cache,中文一般翻译为 "页高速缓存"。页高速缓存是内核实现的磁盘缓存。它主要用来减少对磁盘的 I/O 操作。

free 是真正尚未被使用的物理内存数量。

available 是从应用程序的角度看到的可用内存数量。Linux 内核为了提升磁盘操作的性能,会消耗一部分内存去缓存磁盘数据,就是我们介绍的 buffer 和 cache。所以对于内核来说,buffer 和 cache 都属于已经被使用的内存。当应用程序需要内存时,如果没有足够的 free 内存可以用,内核就会从 buffer 和 cache 中回收内存来满足应用程序的请求。所以从应用程序的角度来说,available  = free + buffer + cache。请注意,这只是一个很理想的计算方式,实际中的数据往往有较大的误差。

posted @ 2019-10-30 12:20  tunan96  阅读(1286)  评论(0编辑  收藏  举报