Windows2003下Apache进程httpd.exe狂吃内存的问题

2008年6月29日 | 分类: 网站建设 | 标签: , ,

今天买伞回来之后发现我放blog的虚拟机又出问题了,windows2003显示虚拟内存不足。于是我登录进去看,其他同样设置的机器原来都是一直好好的,为什么就是这个不行,而且这样的情况出现的不止一次了。重启,进入系统,非常慢,打开任务管理器,发现Apache的进程httpd.exe的内存占用竟然到了400多M,而且还在不停增加,难怪了。重启之后,现象一样,httpd.exe占用的内存不断增加,直到把机器拖垮。

上网搜索,很多的还是说是因为配置的原因,说是要将 httpd.conf 中的 Threadsperchild 和MaxRequestsPerchild做合适的配置。ThreadsPerChild的意思是系统启动时默认启动的等待线程数,用来等待处理客户的请求,MaxRequestsPerchild 指令设置每个子进程在其生存期内允许伺服的最大请求数量。到达MaxRequestsPerChild的限制后,子进程将会结束。根据很多人的经验,一般的服务器2G内存或4G内存,ThreadsPerChild 200~300,MaxRequestsPerchild 1000~3000。我用的是虚拟机,只划了512M内存过去,我不停的修改参数设置,大致知道了占用的最大内存会是Threadsperchild的3-4倍。我最后给自己的虚拟机的设置是Threadsperchild 50 ,MaxRequestsPerchild 256 。暂时还是有用的,但是长久我就不知道了,我看到很多人还是没有用的,又有说法是这个是Apache 2.2.4及其之下的一个bug。很不幸,我用的是APMSERV的集成包,Apache是2.2.3。我刚刚在发布上篇日志的时候就看到了内存又飙到了200多M。我的直觉告诉我服务器的这个问题肯定和wordpress有关,或者是它的一个插件或者主题引起的,另外一个CMS是DEDE,基本都静态页,应该没什么问题的。但是我现在很崩溃,这么细致的试还真没有时间。

另外还有很多的解决方案是和网络的设置也有关系,我也一并设置了。
1.网上邻居->本地连接->属性->internet协议(TCP/IP)->属性->高级->wins标签->去掉启用LMhosts查询前的勾。
2.控制面版->windows防火墙->高级标签->本地连接设置->服务的标签里勾选安全Web服务器(HTTPS)即。



目前还没有任何评论.
您必须在 登录 后才能发布评论.