怪的很,昨天亿枝客网站突然不能访问了(Apache 死了,Crach掉了)我还以为流量太大导致的,后来发现与此无关。检查日志如下:
Insufficient memory (case 2)
指定的网络名不再可用。 : winnt_accept: Asynchronous AcceptEx failed.
Not enough space: mpm_get_completion_context: Failed to create the transaction pool.
一时找不到原因,就重新启动Apache就好了,也就没有多管...
结果5月30号12点,又出现同样问题,我这时急了,一定得找到原因,马上查看windows日志与windows性能报告,发现问题症结,参考以下图,当时绿色与蓝色两个根线都已经达到最高。也就是磁盘访问与内存分页达到极限。
接下来,我就
1、检查防火墙,除了80,其它的都关了
2、删除不用的程序
3、停止FTP服务
最后发现与上面这些都无,主要原因一个网卡被共享上网了,迅速取消,结果问题似乎解决了。
2009-05-03 19:00 也就过了两天,此问题又来了...再次网上寻找解决办法,找到两种办法:
第一种:在httpd.conf 中增加 Win32DisableAcceptEx
具体什么原因,参考这里
然后更改ThreadsPerChild 的值为150 我的 默认是512 如果你的服务器或vps内存超过2G 那么就不用设置,为什么这样做,查看接下来,修改maxrequestsperchild为10000 我的默认是0,依据在这里最后修改情况如下:
<IfModule mpm_winnt_module>
ThreadsPerChild 150
MaxRequestsPerChild 10000
Win32DisableAcceptEx
</IfModule>
第二种:这个方法有点怪异,但是好像比较适合我的情况,因为同样的配置用了半年了,一直没有问题,现在突然有此问题,应该跟windows某些配置发生变化有关。
1、网上邻居->本地连接->属性->internet协议(TCP/IP)->属性->高级->wins标签->去掉启用LMhosts查询前的
勾.
2、控制面版->windows防火墙->高级标签->本地连接设置->服务的标签里勾选安全Web服务器(HTTPS)。
3、然后退出Apache,再打开启动就可以了 ,一开始我没有退出,直接在那重启,就是不可以,一定要先停止,在开启即可。
我尝试了第二种办法,现在验证中...
2009-05-04 2:00 问题仍存在
我无赖升级了apache2.2.8到2.2.11,发现其2.2.8 的 httpd.conf配置差别在以下三个都开启或者存在
LoadModule info_module modules/mod_info.so
LoadModule status_module modules/mod_status.so
<IfModule mpm_winnt_module>
ThreadsPerChild 512
MaxRequestsPerChild 0
</IfModule>
只好明天再看看运行情况...
原创文章,转载请注明: 转载自读思客
本文链接地址: Apache 在windows上崩溃的一种情况




2009-05-14
糟糕,今天这问题又出现了,看来还是没有真正解决。
windows上运行apache 还是不行的。
2009-05-15
在httpd.conf里加了以下代码
Win32DisableAcceptEx
其实加上这个我早就提到了,但是考虑性能问题,一直没有这样做。
问题解决了没有大哥?我的网站好像也出现这种情况啊,apache每隔一会就死掉,重启就好了,你是怎么弄的?发邮件教教我~3q
apache在windows上感觉不是很稳定,后来,转到linux上了,就好了。
写得还可以
留个脚印
做个记号
博主写的不错,谢谢分享,支持