在window系统中使用apache环境的朋友可能会发现一问题,就是apache吃内存一直不释放导致内存不足,从而引起web服务器无法正常方法了,下面我来介绍解决办法。
最简单的办法是利用mpm_winnt来设置该多路处理模块(MPM)是Windows NT上的默认值。它使用一个单独的父进程产生一个单独的子进程,在这个子进程中轮流产生多个线程来处理请求。
说明 专门为Windows NT优化过的MPM
状态 MPM
模块名 mpm_winnt_module
源文件 mpm_winnt.c
apache2confhttpd.conf,查找MaxRequestsPerChild,将MaxRequestsPerChild 0改成MaxRequestsPerChild 50即可。
如果没有上面所有的我们可以在httpd.conf找到httpd-mpm.conf把前在的#去了,然后到confextra目录找到httpd-mpm.conf,然后找到最后一行 有 # WinNT MPM开的,代表只能用在windows下的,其它不要管,不适合我们windows服务器。
如果没有我们可以增加
相关参数说明
ThreadsPerChild
这个参数用于设置每个进程的线程数, 子进程在启动时建立这些线程后就不再建立新的线程了. 一方面因为mpm_winnt不能启动多个进程, 所以这个数值要足够大,以便可以处理可能的请求高峰; 另一方面该参数以服务器的响应速度为准的, 数目太大的反而会变慢。因此需要综合均衡一个合理的数值。
mpm_winnt上的默认值是64, 最大值是1920. 这里建议设置为100-500之间,服务器性能高的话值大一些,反之值小一些。
MaxRequestsPerChild
这个参数是说,apache进程在处理了多少个请求之后,必须退出,重新开始,以免在处理中的内存问题。
Win32DisableAcceptEx
AcceptEx()是一个微软的WinSock2 API ,通过使用BSD风格的accept() API提供了性能改善。一些流行的Windows产品,比如防病毒软件或虚拟专用网络软件,会干扰AcceptEx()的正确操作。如果你遇到类似于如下的错误:
[error] (730038)An operation was attempted on something that is not a socket.: winnt_accept: AcceptEx failed. Attempting to recover.
你就需要使用这个指令来禁止使用AcceptEx()
例
| 代码如下 | 复制代码 |
|
<IfModule mpm_winnt_module> |
|
您可能想查找下面的文章:
- windows2003服务器配置Asp.Net环境图解
- windows2003 设置限制远程登陆用户的个数
- Windows2003怎么添加管理员账号与找回密码
- windows 2003服务器配置ftp服务器图解
- Windows 2003与2008远程连接服务器设置图解
- Windows2003安装和使用FTP服务器(权限配置)
- Windows服务器IIS中设置站点或目录的执行权限
- 解决windows2003中IIS6.0服务器应用程序不可用
- Win7/Windows2003下IIS6.0、IIS7.5的伪静态组件ISAPI_Rewrite安装和伪静态配置方法
- windows服务器iis6+php+mysql的安装配置详解

