打印

如何优化Apache,减少内存的占有?

如何优化Apache,减少内存的占有?

半年前配置了一台服务,AMD3600+,2G内存,最近一两个月,Apache总是占用600-900M的内存,还好内存大点,不然就当机了,请问如何才能解决这个问题呢?谢谢!

TOP

回复 #1 imulinsen 的帖子

前阵子总是发现 httpd 进程的使用内存总量居然达到了上百Mb,有时甚至上Gb,真是夸张。Apache 是架在 Squid 的后面,照理说不应该出现这种情况。通过排查,发现是 Apache 中开启了持续长连接导致。

Apache 进程的内存使用是 "递增/渐进" 式的,也就是在当前进程的 httpd 过程中,内存使用是持续增加的,也就是说在该进程退出之前,内存是持续增加的。主要是由于下面三个参数来控制。

KeepAlive On 设定是否要开启持续长连接,由于前面有 Squid,因此在这里把它打开

MaxKeepAliveRequests 50 在一次持续长连接中,最多允许接收几次请求,如果设置太大的话,很可能导致 httpd
进程持续消耗很多内存,因此可以选择一个适当的值,因为重新创建一个新的进程也是要有一定开销的

KeepAliveTimeout 5 设定一个长连接在没有活动后等待多久自动关闭,可以设置小一点,不过跟上面的类似,如果太小的话,也会导致频繁创建新的进程

现在,调整完上面的参数后,会发现 httpd 进程不再象以前那样狂吃内存了。


这个不是我写的,转载于http://www.imysql.cn/node/329

[ 本帖最后由 kewell11 于 2007-9-4 16:39 编辑 ]

TOP

增加物理内存

问题最终会有解决办法的

TOP


感谢一直以来您对我们的支持!
当前时区 GMT+8, 现在时间是 2008-9-6 00:11 京ICP证060528 号

Designed By 17DST