您的位置:首页 > 运维架构 > Linux

linux free命令详解

2012-02-24 17:17 441 查看
total used free shared buffers cached

Mem: 3072 2459 612 0 207 1803

-/+ buffers/cache: 447 2624

Swap: 1913 0 1913

第2行:

total 内存总数: 3072

used 已经使用的内存数: 2459

free 空闲的内存数: 612

shared 当前已经废弃不用,总是0

buffers: Buffer Cache内存数: 13220

cached: Page Cache内存数: 2720160

关系:total
= used + free

第3行:

-/+ buffers/cache的意思:

-buffers/cache 的内存数: 447 (等于第1行的 used – buffers – cached)

+buffers/cache 的内存数: 2624 (等于第1行的 free + buffers + cached)

可见-buffers/cache反映的是被程序实实在在吃掉的内存,而+buffers/cache反映的是可以挪用的内存总数。

第4行单独针对交换分区。

为了提高磁盘存取效率,
Linux除了对dentry进行缓存(用于VFS,加速文件路径名到inode的转换), 还采取了两种主要Cache方式:Buffer Cache和Page Cache。前者针对磁盘块的读写,后者针对文件inode的读写。这些Cache有效缩短了I/O系统调用(如read,write,getdents)的时间。

第2行(mem)的used/free与第3行(-/+
buffers/cache) used/free的区别:

这两个的区别在于使用的角度。第2行是从OS的角度来看,因为对于OS,buffers/cached都是属于被使用,所以他的可用内存是612MB,已用内存是2459MB,其中包括,内核(OS)使用+Application(X, oracle,etc)使用的+buffers+cached.第3行所指的是从应用程序角度来看,对于应用程序来说,buffers/cached是可用的,因为buffer/cached是为了提高文件读取的性能而设,当应用程序要用到内存的时候,buffer/cached会很快地被回收。所以从应用程序的角度来说,可用内存=系统free
memory+buffers+cached.

所以总的来说看系统可用的内存数,应该看-/+ buffers/cache这行的最后一个数字。

free: invalid option -- -

usage: free [-b|-k|-m|-g] [-l] [-o] [-t] [-s delay] [-c count] [-V]

-b,-k,-m,-g show output in bytes, KB, MB, or GB

-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

-V display version information and exit

原文地址:http://anlywei.vicp.cc/index.php/archives/432
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: