Chinaunix首页 | 论坛 | 博客
  • 博客访问: 435326
  • 博文数量: 55
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1584
  • 用 户 组: 普通用户
  • 注册时间: 2013-05-04 15:15
个人简介

热衷技术,热爱交流

文章分类

全部博文(55)

文章存档

2014年(7)

2013年(48)

分类: LINUX

2013-05-25 20:48:40


free命令:


oracle[~]$free -s 5 -c 4
                       total           used        free     shared    buffers     cached
1. Mem:       1013156       943940      69216          0      48472     699168
2. -/+ buffers/cache:       196300       816856
3. Swap:      2097144           0       2097144


说明:默认上面的数值单位都是k

      第一行(Mem)的total(1013156) 表示总的物理内存大小,buffers表示将要写入硬盘的缓冲数据占用的内存空间,cached表示将要被cpu处理的的缓存数据占用的内存空间。buffers和cached对于操作系统而言,是已经分配的空间了,所以这里的used=(内核使用+应用程序使用)+buffers+cached。于是,(内核使用+应用程序使用)=used-buffers-cached= 943940-48472-699168=196300。也就是说,内核和进程实际使用的内存量是196300。

     很巧,第二行( -/+ buffers/cache: )中的used(196300)等于第一行中的“内核使用+应用程序使用“。难道他们相等仅仅是巧合?当然不是了,第二行名字虽然叫做” -/+ buffers/cache“,但是他这个used表示的也是”内核使用+应用程序使用“,进程在申请内存时候,实际看的就是第二行。因为,对于进程而言,第一行的buffers与cache都是可用的,也就是对于进程而言,free(可用空间)=total(Mem中的)-used(-/+ buffers/cache中的)=1013156-196300=free(第一行中的)+buffers+cached= 69216+48472+699168= 816856

    第三行,交换分区,暂时不做记录了。

阅读(1790) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~