解决win环境下Apache占用大量内存的问题
2008-05-09 10:33
274 查看
我有个服务是在windows下的Apache2提供的。访问量不是很大,隔4、5天竟然停止服务,
调查发现Apache2的进程httpd.exe占用内存达到了1.5G。在网上找到如下解决办法。
用记事本打开apache2/conf/httpd.conf,查找MaxRequestsPerChild,将MaxRequestsPerChild 0改成MaxRequestsPerChild 50即可。
原因是:
通常在“Windows任务管理器-进程”中可以看到两个apache.exe进程,一个是父进程、一个是子进程,父进程接到访问请求后,将请 求交由子进程处理。MaxRequestsPerChild这个指令设定一个独立的子进程将能处理的请求数量。在处理 “MaxRequestsPerChild 数字”个请求之后,子进程将会被父进程终止,这时候子进程占用的内存就会释放,如果再有访问请求,父进程会重新产生子进程进行处理。
如果MaxRequestsPerChild缺省设为0(无限)或较大的数字(例如10000以上)可以使每个子进程处理更多的请求,不会因为 不断终止、启动子进程降低访问效率,但MaxRequestsPerChild设置为0时,如果占用了200~300M内存,即使负载下来时占用的内存也 不会减少。内存较大的服务器可以设置为0或较大的数字。内存较小的服务器不妨设置成30、50、100,以防内存溢出。
因为Windows NT下Apache只能启动父子两个进程,因此只能通过增大单个进程的线程数以及单个进程能够处理的最大请求数来进行优化。其他优化的参数同Linux系统下是一样的,大家可以加以参考。下面针对上述两个参数给出一个建议的设置:
ThreadsPerChild 250
MaxRequestsPerChild 5000
来源:
1. http://mingling123456.blog.163.com/blog/static/1066189200814112544921/
2. http://www.javatang.com/archives/2008/02/19/0801260.html
调查发现Apache2的进程httpd.exe占用内存达到了1.5G。在网上找到如下解决办法。
用记事本打开apache2/conf/httpd.conf,查找MaxRequestsPerChild,将MaxRequestsPerChild 0改成MaxRequestsPerChild 50即可。
原因是:
通常在“Windows任务管理器-进程”中可以看到两个apache.exe进程,一个是父进程、一个是子进程,父进程接到访问请求后,将请 求交由子进程处理。MaxRequestsPerChild这个指令设定一个独立的子进程将能处理的请求数量。在处理 “MaxRequestsPerChild 数字”个请求之后,子进程将会被父进程终止,这时候子进程占用的内存就会释放,如果再有访问请求,父进程会重新产生子进程进行处理。
如果MaxRequestsPerChild缺省设为0(无限)或较大的数字(例如10000以上)可以使每个子进程处理更多的请求,不会因为 不断终止、启动子进程降低访问效率,但MaxRequestsPerChild设置为0时,如果占用了200~300M内存,即使负载下来时占用的内存也 不会减少。内存较大的服务器可以设置为0或较大的数字。内存较小的服务器不妨设置成30、50、100,以防内存溢出。
因为Windows NT下Apache只能启动父子两个进程,因此只能通过增大单个进程的线程数以及单个进程能够处理的最大请求数来进行优化。其他优化的参数同Linux系统下是一样的,大家可以加以参考。下面针对上述两个参数给出一个建议的设置:
ThreadsPerChild 250
MaxRequestsPerChild 5000
来源:
1. http://mingling123456.blog.163.com/blog/static/1066189200814112544921/
2. http://www.javatang.com/archives/2008/02/19/0801260.html
相关文章推荐
- 解决CodeIgniter大量查询sql时占用内存大问题
- 如何解决多个disp+work进程占用大量内存的问题
- 真正解决win2003下apache的httpd.exe占用内存的问题
- <有用>解决Apache长时间占用内存大的问题,Apache 内存优化方法-以及查看线程进程命令
- 解决Apache长时间占用内存大的问题,Apache 内存优化方法
- oracle真实案例之oem大量占用cpu与内存问题的解决方法
- 解决Apache长时间占用内存大的问题,Apache 内存优化方法
- XAMPP集成环境下Apache端口占用、MySQL密码及其各种中文字符乱码问题解决汇总
- 解决ABAP获取大量数据而被占用过多内存等问题
- WINDOWS APACHE 内存占用过多问题解决方法
- 关于生产环境出现tomcat的jvm 内存溢出问题的解决
- PHPExcel解决内存占用过大问题-设置单元格对象缓存
- cloudsim仿真过程中内存占用过大问题的解决
- 解决apache/nginx做反向代理导致request.getServerName()外网环境获取不到代理地址(或域名)的问题
- 解决apache/nginx做反向代理导致request.getServerName()外网环境获取不到代理地址(或域名)的问题
- 解决apache/nginx做反向代理导致request.getServerName()外网环境获取不到代理地址(或域名)的问题
- 解决apache/nginx做反向代理导致request.getServerName()外网环境获取不到代理地址(或域名)的问题
- 修改桌面堆栈大小,解决运行大量程序时出现”Out of Memory”(内存不足)错误信息的问题
- 解决端口占用Apache无法启动的问题
- 如何解决PHP查询大量数据内存耗尽的问题