自动更新后内存貌似没有释放

2007-12-30 文章 Forrest
hi, 我机器自动更新时,内存占用就会迅速增加,而更新完后好像内存占用无法回到原来的值(貌似没有被释放?),这是怎么回事呢? -- Stupid is as stupid does.

Re: 自动更新后内存貌似没有释放

2007-12-30 文章 Christian Leng
Linux的内存管理机制好像就是这样的,进程结束之后,内存看起来还被占用着,其实是已经还给系统了,当你开始新的进程时,那些内存会自动重新分配的,没有关系。而且,linux会将尽量的使用物理内存,直到物理内存耗尽之后才启用交换区。 在 07-12-31,Forrest[EMAIL PROTECTED] 写道: hi, 我机器自动更新时,内存占用就会迅速增加,而更新完后好像内存占用无法回到原来的值(貌似没有被释放?),这是怎么回事呢? -- Stupid is as stupid does.

Re: 自动更新后内存貌似没有释放

2007-12-30 文章 shell909090
Linux在内存计算上比较特殊,当读取一个文件后,会一直保存在cache里面,直到 有程序需要内存才按照使用释放。因此在内存足够的情况下, Linux访问读取过的 文件的速度非常快。不过在察看系统空余内存的时候,就会非常不好看,基本都是 8M上下。一旦不足,就释放缓存。因此理论上说,只要你写个程序申请大量内存, 就会把缓存挤出来。不过这样除了使得系统性能下降,没有别的好处。 Forrest 写道: hi, 我机器自动更新时,内存占用就会迅速增加,而更新完后好像内存占用无法 回到原来的值(貌似没有被释放?),这是怎么回事呢? -- Stupid is as stupid

Re: 自动更新后内存 貌似没有释放

2007-12-30 文章 Ming Hua
On Mon, Dec 31, 2007 at 11:01:53AM +0800, shell909090 wrote: 不过在察看系统空余内存的时候,就会非常不好看,基本都是8M上下。 没有这样的说法。虽然作为 cache 的空余内存不会被自动释放,但系统也不会没 事自己去把空余内存拿来做 cache。如果没有什么程序运行,系统有几百兆空域内 存也是很常见的事情。 Ming 2007.12.30

Re: 自动更新后内存貌似没有释放

2007-12-30 文章 shell909090
他问的不就是为啥运行了程序后空余内存不释放么? Ming Hua 写道: On Mon, Dec 31, 2007 at 11:01:53AM +0800, shell909090 wrote: 不过在察看系统空余内存的时候,就会非常不好看,基本都是8M上下。 没有这样的说法。虽然作为 cache 的空余内存不会被自动释放,但系统也不会没 事自己去把空余内存拿来做 cache。如果没有什么程序运行,系统有几百兆空域内 存也是很常见的事情。 Ming 2007.12.30 -- To UNSUBSCRIBE, email to [EMAIL

Re: 自动更新后内存 貌似没有释放

2007-12-30 文章 Ming Hua
Ming Hua 写道: On Mon, Dec 31, 2007 at 11:01:53AM +0800, shell909090 wrote: 不过在察看系统空余内存的时候,就会非常不好看,基本都是8M上下。 没有这样的说法。虽然作为 cache 的空余内存不会被自动释放,但系统也不会没 事自己去把空余内存拿来做 cache。如果没有什么程序运行,系统有几百兆空域内 存也是很常见的事情。 On Mon, Dec 31, 2007 at 01:17:58PM +0800, shell909090 wrote:

Re: 自动更新后内存貌似没有释放

2007-12-30 文章 shell909090
这句也就只针对上面说的状况才成立,就是程序运行结束后为什么空余内存很小。 因为程序在运行的时候,除了即时申请的动态堆和栈。代码区,静态数据区都是作 为文件映射到进程空间的。因此即使退出,只要没有新的内存申请,这部分内容还 会继续保留在cache中。自然在这个时候察看空余内存,会发现大量的内存被占 用,空余内存让人很抓狂。原来我曾经因为这个事情,把2G的内存(当时很大了)升 级到4G。结果不但问题没有解决,反而引发了需要重编译内核以支持大内存容量的 问题。最后查到问题关键,差点吐血。 Ming Hua 写道: Ming Hua 写道: On Mon, Dec

Re: 自动更新后内存 貌似没有释放

2007-12-30 文章 Ming Hua
On Mon, Dec 31, 2007 at 01:40:57PM +0800, shell909090 wrote: 这句也就只针对上面说的状况才成立,就是程序运行结束后为什么空余内存很小。 因为程序在运行的时候,除了即时申请的动态堆和栈。代码区,静态数据区都是作 为文件映射到进程空间的。因此即使退出,只要没有新的内存申请,这部分内容还 会继续保留在cache中。自然在这个时候察看空余内存,会发现大量的内存被占 用,空余内存让人很抓狂。原来我曾经因为这个事情,把2G的内存(当时很大了)升 级到4G。结果不但问题没有解决,反而引发了需要重编译内核以支持大内存容量的

Re: 自动更新后内存貌似没有释放

2007-12-30 文章 shell909090
Ming Hua 写道: On Mon, Dec 31, 2007 at 01:40:57PM +0800, shell909090 wrote: 这句也就只针对上面说的状况才成立,就是程序运行结束后为什么空余内存很小。 因为程序在运行的时候,除了即时申请的动态堆和栈。代码区,静态数据区都是作 为文件映射到进程空间的。因此即使退出,只要没有新的内存申请,这部分内容还 会继续保留在cache中。自然在这个时候察看空余内存,会发现大量的内存被占 用,空余内存让人很抓狂。原来我曾经因为这个事情,把2G的内存(当时很大了)升