日期:2014-05-16  浏览次数:20865 次

Linux下释放cache内存

来源:http://soft.chinabyte.com/os/56/11805056.shtml

细心的朋友会注意到,当你在linux 下频繁存取文件后,物理内存会很快被用光,当程序结束后,内存不会被正常释放,而是一直作为caching.这个问题,貌似有不少人在问,不过都没有看到有什么很好解决的办法.那么我来谈谈这个问题.

  先来说说free命令

  [root@server ~]# free -m

  total used free shared buffers cached

  Mem: 249 163 86 0 10 94

  -/+ buffers/cache: 58 191

  Swap: 511 0 511

  其中:

  total 内存总数

  used 已经使用的内存数

  free 空闲的内存数

  shared 多个进程共享的内存总额

  buffers Buffer Cache和cached Page Cache? 磁盘 缓存的大小

  -buffers/cache 的内存数:used - buffers - cached

  +buffers/cache 的内存数:free + buffers + cached

  可用的memory=free memory+buffers+cached

  有了这个基础后,可以得知,我现在used为163MB,free为86,buffer和cached分别为10,94

  那么我们来看看,如果我执行复制文件,内存会发生什么变化.

  [root@server ~]# cp -r /etc ~/test/

  [root@server ~]# free -m

  total used free shared buffers cached