理解free命令

来源:互联网 发布:网络机柜 尺寸 编辑:程序博客网 时间:2024/06/10 00:55
root@Linux /tmp]# free 
             total       used       free     shared    buffers     cached
Mem:       4116660    3253412     863248          0     142180     869260
-/+ buffers/cache:    2241972    1874688

Swap:      6168952      73052    6095900


Mem:表示物理内存统计 
-/+ buffers/cached:表示物理内存的缓存统计 

Swap: 表示硬盘上交换分区的使用情况,这里我们不去关心。


第1行 

total:表示物理内存总量。 

used:表示总计分配给缓存(包含buffers 与cache )使用的数量,但其中可能部分缓存并未实际使用。 
free:未被分配的内存。 
shared:共享内存,一般系统不会用 到,这里也不讨论。 
buffers:系统分配但未被使用的buffers 数量。 

cached:系统分配但未被使用的cache 数量。buffer 与cache 的区别见后面。

 total = used + free 


第2行 

used:也就是第一行中的used - buffers-cached 也是实际使用的内存总量。 

free:未被使用的buffers 与cache 和未被分配的内存之和,这就是系统当前实际可用内存。 

free 2= buffers1 + cached1 + free1 //free2为第二行、buffers1等为第一行


buffer 与cache 的区别

A buffer is something that has yet to be "written" to disk. A cache is something that has been "read" from the disk and stored for later use

从应用程序角度来 看,buffers/cached 是等于可用的,因为buffer/cached是为了提高文件读取的性能,当应用程序需在用到内存的时候,buffer/cached会很快地被回收。所以从应用程序的角度来说,可用内存=系统freememory+buffers+cached.

buffers是指用来给块设备 做的缓冲大小,他只记录文件系统的metadata以及 tracking in-flight pages.
cached是用来给流设备 比如文件 做缓冲。
也就是说:buffers是用来存储目录里面有什么内容,权限等等。

而cached直接用来记忆我们打开的文件


---------------------------------------------
语法: free [-bkmotV][-s <间隔秒数>]

补充说 明:free指令会显示内存的使用情况,包括实体内存,虚拟的交换文件内存,共享内存区段,以及系统核心使用的缓冲区等。

参数:
-b 以Byte为单位显示内存使用情况。
-k 以KB为单位显示内存使用情况。
-m 以MB为单位显示内存使用情况。
-o 不显示缓冲区调节列。
-s<间隔秒数> 持续观察内存使用状况。
-t 显示内存总和列。
-V 显示版本信息。


原创粉丝点击