Linux下内存释放问题相关知识
细心的朋友会注意到,当你在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
Mem: 249 244 4 0 8 174
-/+ buffers/cache: 62 187
Swap: 511 0 511
在我命令执行结束后,used为244MB,free为4MB,buffers为8MB,cached为174MB,天呐都被cached吃掉了.别紧张,这是为了提高文件读取效率的做法.
引用http://www.wujianrong.com/archives/2007/09/linux_free.html"为了提高磁盘存取效率, Linux做了一些精心的设计, 除了对dentry进行缓存(用于VFS,加速文件路径名到inode的转换), 还采取了两种主要Cache方式:Buffer Cache和Page Cache。前者针对磁盘块的读写,后者针对文件inode的读写。这些Cache有效缩短了 I/O系统调用(比如read,write,getdents)的时间。"
那么有人说过段时间,linux会自动释放掉所用的内存,我们使用free再来试试,看看是否有释放>?
[root@server test]# free -m
total used free shared buffers cached
Mem: 249 244 5 0 8 174
-/+ buffers/cache: 61 188
Swap: 511 0 511
MS没有任何变化,那么我能否手动释放掉这些内存呢???回答是可以的!
/proc是一个虚拟文件系统,我们可以通过对它的读写操作做为与kernel实体间进行通信的一种手段.也就是说可以通过修改/proc中的文件,来对当前kernel的行为做出调整.那么我们可以通过调整/proc/sys/vm/drop_caches来释放内存.操作如下:
[root@server test]# cat /proc/sys/vm/drop_caches
0
首先,/proc/sys/vm/drop_cac
相关文档:
装fedoral之前进行了硬盘分区,没想到中途出现了异常,大悲剧
不过最后还是装好了 可是win7的启动项又被破坏,害我用安装盘修复了一下
再后来就是开机的时候出现grub>
用以下命令成功进入win7 : grub> rootnoverify(hd0,0)
&nbs ......
Linux下的fdisk功能是极其强大的,用它可以划分出最复杂的分区,下面简要介绍一下它的用法:
对于IDE硬盘,每块盘有一个设备名:对应于主板的四个IDE接口,设备名依次为:/dev /hda,/dev/hdb,/dev/hdc,/dev/hdd等,如果还有IDE Raid卡,则依 次为:/dev/hde,/dev/hdf,/dev/hdg,/dev/hdh。对于SCSI硬盘,则设备名依次 ......
安装.src.rpm
有些软件包是以.src.rpm结尾的,这类软件包是包含了源代码的rpm包,在安装时需要进行编译。这类软件包有两种安装方法:
方法一:
1. 执行rpm -i your-package.src.rpm
2. cd /usr/src/redhat/SPECS
3. rpmbuild -bp your-package.specs 一个和你的软件包同名的specs文件
4. cd /usr/sr ......
1
编写说明
本文档主要介绍XML的基本知识及利用如何利用libxml来操作xml文件。
2
XML
基础
XML是eXtensible Markup
Language的缩写,它是一种可扩展性标识语言, 能够让你自己创造标识,标识你所表示的内容。DOM全称是Document O ......
1、打开终端,切换到root用户,输入:free -m查看内存状态
[root@lxt lxt]# free -m
total used free shared buf ......