分类: LINUX
2007-11-30 10:54:44
本命令手册以实用,简洁为原则,对于已经消化的内容,不附加详细的注解。
磁针石
联系方式:
QQ:37391319 gmail and gtalk:
*
display information about free
and used memory on the system语法
* 以M为单位查看内存使用情况
# free -m
total used free shared buffers cached
Mem: 1008 994 14 0 50 582
-/+ buffers/cache: 361 646
Swap: 1992 76 1915
total = used + free
share这个值现在已经不使用
-buffers/cache 的内存数:361 (等于第1行的 used - buffers - cached) 表示应用程序使用的内存
+buffers/cache 的内存数: 646 (等于第1行的 free + buffers + cached) 表示应用程序可用的内存
为了提高磁盘存取效率, Linux做了一些精心的设计, 除了对dentry进行缓存(用于VFS,加速文件路径名到inode的转换), 还采取了两种主要Cache方式:Buffer Cache和Page Cache。前者针对磁盘块的读写,后者针对文件inode的读写。这些Cache有效缩短了 I/O系统调用(比如read,write,getdents)的时间。
buffers是指用来给块设备做的缓冲大小,他只记录文件系统的metadata以及 tracking in-flight pages.
cached是用来给文件做缓冲。
那就是说:buffers是用来存储,目录里面有什么内容,权限等等。
而cached直接用来记忆我们打开的文件
如果感兴趣可以进一步参考文件/proc/meminfo,free命令就是根据它的信息生成的。free命令的源码可从procps-xxx-.src.rpm获取,xxx为版本号,比如procps-
参考内核代码:
arch/i386/mm/init.c
fs/proc/proc_misc.c
include/linux/swap.h
mm/filemap.c
fs/buffer.c
另外还可以参考O'REILLY的书《Understanding the LINUX KERNEL》
* 每2s刷新一次
# free -s 2
total used free shared buffers cached
Mem: 1032536 1017900 14636 0 51856 595368
-/+ buffers/cache: 370676 661860
Swap: 2040244 79052 1961192
Free 的参数比较简单,主要是涉及显示格式的,请参考帮助.