一 命令/bin/free显示系统中内存空闲及使用情况,包括实体内存,虚拟的交换文件内存,共享内存段,
以及使用的缓冲区等
参数
-b 以Byte为单位显示内存使用情况。
-k 以KB 为单位显示内存使用情况
-m 以MB 为单位显示内存使用情况
-o 不显示缓冲区调节列
-s 持续观察内存使用情况,动态更新时间间隔
-t 显示内存总数
-V 显示版本号
-l 显示低端内存和高端内存
free -m
total used free shared buffers cached
Mem: 530 137 392 0 24 66
-/+ buffers/cache: 46 484
Swap: 2207 0 2207
第一部分Mem行:
total 为内存总数:530M
used 已经使用的内存数:137 ,分配给缓存包含buffers 与cache使用的数量,但其中肯部分 缓存并未实际使用
free 空闲的内存数:392M, 未被使用的内存
shared 共享内存
buffer: 缓存内存数:24M,系统分配但未被使用的buffer数量
cache:缓存内存数:66M,系统分配但未被使用的cache数
关系:total = used + free
第二部分 -/+ buffers/cache:
- buffers/cache 行中的 used内存= mem/used - mem/buffers - mem/cached
+buffers/cache 行中的free内存数 是指 mem/free+mem/buffer+mem/cached,是指未被使用那个的buffer与cache和未被分配的内存之和
- buffers/cache 反映的是被程序实实在在吃掉的内粗,而+buffer/cache反映的是可以挪用的内存总数
第三部分是交换分区
对于操作系统来讲Mem的参数buffer/cached都是属于被使用
对于应用程序来讲 -/+ buffers/cache: 的free 和used为主,另外linux 为了提高磁盘和内存存取效率,Linux 做了
很多精心设计,除了对dentry进行缓存(用于VFS,加速文件路径名到inode的转换)还采取了两种cache方式:Buffer ache 和Page Cache,
前者针对磁盘块的读写,后者针对文件inode的读写,这些cache能有效缩短了I/O系统调用的时间
二 从/proc/buddyinfo文件中了解到每个内存区中有多少块内存可以使用。每列数值代表所需求大小的块可用的数量。
例子2-10中,在ZONE_DMA中有5块2^2*PAGE_SIZE可用,在ZONE_DMA32中有16块2^3*PAGE_SIZE可用。回忆一下伙伴系统是怎样分配内存分页的
下面输出结果显示系统内存碎片的具体情况并让我们了解有到底多少分页可以分配。
注:参考blog
本文转自 freehat08 51CTO博客,原文链接:http://blog.51cto.com/freehat/1027154,如需转载请自行联系原作者