Linux系统会把大部分可用内存划归自己使用。这是Linux管理内存的一种方式。他不是在需
要分配空间的时候再到物理内存中去划一块归某个进程使用,而是提前就把整个内存管理起
来,需要的时候再分配给某个进程。这样的好处是因为有了统一管理,不容易出现内存碎片
,提高了效率。这些linux管理的内存大多数是空闲状态,你可以看看当新的程序运行的时
候,Linux的内存占用不会提高,除非机器的内存已经耗尽。这时Linux会把一些不常用的进
程换出到交换分区。
http://www.zwkw.com/n5594c104.aspx
linux里面显示的已经使用内存是程序所占的内存和用作磁盘缓存的内存。
而free的内存是真正的一点有没有派上用场的内存。
所以看程序真正占用的内存应该要减掉cacheinux的内存分配原则就是要占用尽量多的内存来提供尽可能快的速度,要不内存不用放在那里干嘛……
正常情况下,物理内存应该是接近完全占用才好,而交换内存占用才是越少越好
参考: understanding the linux virtual memory manager
Linux
内存
占用、使用情况请教
2006-02-10 14:21:46
<!--DVNEWS_AD_BEGIN-->
<!--DVNEWS_AD_END-->发贴人: HIZHX
请教:
Suse
Linux使用top命令,查看
内存
占用率非常高,据了解,是因为
Linux对
内存的分配策略导致的:只进不出,如果无
内存分配,再将程序换出释放部分
内存。
1top命令和ps命令两个查看
内存方法有本质区别吗?显示出来的结果有什么区别?
2用什么命令可以查看到系统
内存真实
占用率?
2006-02-11 05:55:08
回复人: tywz
free命令也可以看
内存的。
还有貌似
LInux对
内存的使用就是很大的,256m的
内存条,一般用到240m左右,之后才开始用swap,大概和
Linux
内存调度策略有关吧
2006-02-11 12:33:17
回复人: cwwhy
Linux使用
内存多是因为用来做io缓存用的,用free可以看到真实使用的
内存
2006-02-11 19:20:55
回复人: HIZHX
我这台服务器操作系统是SUSE
Linux,
内存4G,服务器运行程序不多,但是
内存
占用率一直高达97%,这个可能与Suse的
内存分配策略有关。
不知道有没有人比较清楚Suse的
内存分配策略,以及怎么判断Suse
内存
占用正常。望赐教,谢谢!
2006-02-11 19:32:24
回复人: HIZHX
其实,只要SWAP没有使用,或者说扇入扇出并不频繁的话,应该说
内存是够用了。
2006-02-12 00:43:44
回复人: flyingdog
其实是
内存的统计方法不同。
linux里面显示的已经使用
内存是程序所占的
内存和用作磁盘缓存的
内存。
而free的
内存是真正的一点有没有派上用场的
内存。
所以看程序真正
占用的
内存应该要减掉cache
2006-02-12 04:48:59
回复人: VanillaSky
Linux系统会把大部分可用
内存划归自己使用。这是
Linux管理
内存的一种方式。他不是在需要分配空间的时候再到物理
内存中去划一块归某个进程使用,而是提前就把整个
内存管理起来,需要的时候再分配给某个进程。这样的好处是因为有了统一管理,不容易出现
内存碎片,提高了效率。这些
linux管理的
内存大多数是空闲状态,你可以看看当新的程序运行的时候,
Linux的
内存
占用不会提高,除非机器的
内存已经耗尽。这时
Linux会把一些不常用的进程换出到交换分区。
2006-02-12 11:47:20
回复人: HIZHX
“香草的天空”说的好像很有道理,能介绍点资料给我看看不?
谢谢!
2006-02-12 15:48:08
回复人: byzs
情景分析和1.0源码分析
2006-02-13 10:53:20
回复人: fierygnu
Understandingthe
LinuxVirtualMemoryManager