该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
从红旗5.0说起——看Linux的内存管理
红旗5.0是我最近试用的第三套linux发行版,昨天上这里看到有帖子说很吃内存,于是乎我也打开我的任务管理器,一看吓一跳!我的内存占用竟然达到近 1G!这个时候,我的红旗5.0已经开机近10小时,打开过很多程序,游览过很多网站,下载过很多东东,操作感觉并不慢,和开机时差不多,有些程序还比刚开机时打开快很多。
说到这里,我现介绍一下我的配置:amd 1800+ OC 1.9G,nf2芯片组主板,内存1G,硬盘200G,显卡ati7500, 这时我按ctrl+alt+f1,进入命令模式,键入 free m。这时看到虽然内存占用接近1G,但swap分区竟然还是空的,占用为 0!于是我返回图形模式,关了全部程序,发现内存占用并没减少多少,还是维持在990M以上!于是我关机重启,进入系统后内存占用就达360多M,打开 opoffice,内存用量急剧上升到近500M,再打开firefox,内存一路飙升,很快随着其他程序的打开,内存就升到了900M,进入字符模式看,swap占用始终为 0!关闭openoffice,内存没见明显下降,再次打开openoffice,发觉打开速度比第一次快很多,内存没见明显上升。
这时我立即下线,然后转换硬盘,打开我安装的 suse 10.0来,进入系统一看,suse10.0 的,刚启动时,进入kde界面,占用内存81M,随着打开程序的增多,内存使用量一路飙升,关闭部分程序内存使用量就立即有所下降,使用一段时间后,关闭所有程序,内存使用量维持在130左右,在整个过程中,suse kde桌面的感受速度不及红旗5.0,应该说慢不少,但开机到关机中间,程序打开运行速度没什么明显变化。
运行suse 10.0 近一小时,我又下线,换了安装fc 5.0发行版的硬盘,启动进入fc 5.0,发现内存占用约130m,运行后,内存随着程序打开的 多少而变化,运行速度和红旗5.0差不多,是gnome界面。带着疑问,联想到是否和linux硬盘缓冲有关,我把内存降下来又会如何?,今天一早,先拔除一条内存,把我的内存从1G减少到512M,(本来还想再少点,可惜我最小的一条内存就是512M了,原来有的256M内存早就出手了)启动进入红旗linux桌面5.0,初始内存占用为360M左右,打开 openoffice,内存占用达到460M,继续打开很多网页,游戏等,内存很快就在500下方摆动,始终没有越过510M,程序打开和运行速度变换不大,最近打开的程序关闭后,再次打开速度比较快,进入字符模式查看,swap还是为0,至此,终于摸清了红旗5.0的内存管理模式,其实也是linux的内存使用方式。
1、linux内存使用效率明显比ms的高,在 windows下,尽管内存足够,如果你没有禁用虚拟内存的话,多少会把一些东西写入虚拟内存。
2、linux尽量使用物理内存,只要物理内存够用,就不使用swap区,linux关闭程序后,在物理内存足够的情况下,并不立即退出内存,下次打开同样的程序,速度会很快。
3、当物理内存不够用时,linux才会把已经关闭的程序所占用内存清空,以便给新打开的程序使用,轻易不会使用swap区。
4、在实际运行中的程序所需物理内存不够的情况下,才会调用swap做缓存。
这也就是说,在linux内,你有多少内存,她就尽量使用,如果你有2G内存,系统运行一段时间后,很有可能你的内存占用就会接近2G,你只有256M内存的话,她也会一直全部使用,但不会因为在内存够用的情况下去使用swap缓存!
同时,红旗5.0的内存使用统计可能和其他发行版有所不同,其他发行版是以实际运行中的程序所占用的内存来统计的,并不统计程序已经退出,但内存还没有释放的部分(注意,这些数据下次还是可以使用的),而红旗5.0是以内存有效数据为准,尽管程序已经退出,但存在内存中的数据还没清空,这些数据还是有效的,下次打开同样的程序,可以直接使用。
Linux联盟收集整理
频道声明:本频道的文章除部分特别声明禁止转载的专稿外,可以自由转载.但请务必注明出出处和原始作者 文章版权归本频道与文章作者所有.对于被频道转载文章的个人和网站,我们表示深深的谢意。
原始作者:佚名 录入时间:2007-1-2 3:44:00
信息来源:不详 投稿信箱:itqoo@126.com