网站运行一段时间后,Apache 的 httpd.exe 进程占用的内存就会越来越大,由最初的20M不断上升直到把内存占满。
重新启动服务器后 httpd.exe 占得内存又恢复到 20M,但是网站运行一段时间,占用的内存又会无限的增加。这是什么原因?怎么解决,谢谢!我的环境是:Windows Server 2003 + Apache 2.2.4 + PHP5.2.2
重新启动服务器后 httpd.exe 占得内存又恢复到 20M,但是网站运行一段时间,占用的内存又会无限的增加。这是什么原因?怎么解决,谢谢!我的环境是:Windows Server 2003 + Apache 2.2.4 + PHP5.2.2
MaxRequestsPerChild这个指令设定一个独立的子进程将能处理的请求数量。在处理“MaxRequestsPerChild 数字”个请求之后,子进程将会被父进程终止,这时候子进程占用的内存就会释放,如果再有访问请求,父进程会重新产生子进程进行处理。
如果MaxRequestsPerChild缺省设为0(无限)或较大的数字(例如10000以上)可以使每个子进程处理更多的请求,不会因为不断终止、启动子进程降低访问效率,但MaxRequestsPerChild设置为0时,如果占用了200~300M内存,即使负载下来时占用的内存也不会减少。内存较大的服务器可以设置为0或较大的数字。内存较小的服务器不妨设置成30、50、100,以防内存溢出。
MaxRequestsPerChild这个指令设定一个独立的子进程将能处理的请求数量。在处理“MaxRequestsPerChild 数字”个请求之后,子进程将会被父进程终止,这时候子进程占用的内存就会释放,如果再有访问请求,父进程会重新产生子进程进行处理。
如果MaxRequestsPerChild缺省设为0(无限)或较大的数字(例如10000以上)可以使每个子进程处理更多的请求,不会因为不断终止、启动子进程降低访问效率,但MaxRequestsPerChild设置为0时,如果占用了200~300M内存,即使负载下来时占用的内存也不会减少。内存较大的服务器可以设置为0或较大的数字。内存较小的服务器不妨设置成30、50、100,以防内存溢出。
--------------------------------------------------------------------------------
我的“Windows任务管理器-进程”中没有apache.exe 进程,有两个 httpd.exe 进程
你安的是Apache么?httpd.exe好像是Resin Servlet引擎的 Http Server 服务。
现在是 httpd.exe 这个进程的
进程持续消耗很多内存,因此可以选择一个适当的值,因为重新创建一个新的进程也是要有一定开销的3 KeepAliveTimeout 5 设定一个长连接在没有活动后等待多久自动关闭,可以设置小一点,不过跟上面的类似,如果太小的话,也会导致频繁创建新的进程
未经测试...转帖...
我以前记得一个项目用的是APACHE2.0.59频繁的死机,后来换成2.0.58了情况就好很多。解决了记得说一下。什么问题。
CGI是独立进程
ISAPI是共享进程
建议用ISAPI方式
如果可能,还是使用linux。另外,可以去掉一些不用的apache模块和php扩展,减少内存消耗。
设置MaxRequestsPerChild减轻内存泄露造成的问题。
MaxRequestsPerChild,我设置了,但是还是不断的增长。
如果是冲突,他会一直写错误日志的,
以前遇到过,后来也是重新装了 apache,只是换了一个版本
现在是httpd.exe进程.
配置问题,是不是连接太多了,又有可能是你的程序问题,我做个一个生成HTML静态文件的程序,把所有数据生成静态,好恐怖的,占用了我2GB内存,然后完成后才降下来.
赞成,我现在就是用Linux,很少出现这些问题,性能很好.