日期:2014-05-17  浏览次数:20597 次

【紧急】Apache在Win2003 server服务器上配置问题
服务器环境:windows2003 server + apache + mysql + php + iis
服务器硬件:酷睿双核 + 2.5G内存 + 250G硬盘

最近服务器频繁宕机,观察windows任务管理器发现Apache的httpd.exe进程狂吃内存,PF从800M直飙升到2.0G然后宕机。具体表现的现象有如下几点:

1.mysqld.exe占用cpu平均高达80%以上。
2.httpd.exe开机后内存占用增加速度飞快。
3.重启后不到5分钟又宕机。
4.远程连接无预兆的中断,远程桌面连接一旦中断,网站便无法访问,IP也无法ping通。
5.夜间比较稳定,一到白天就频繁宕机。

apache当前参数配置如下

# WinNT MPM
# ThreadsPerChild: constant number of worker threads in the server process
# MaxRequestsPerChild: maximum number of requests a server process serves
<IfModule mpm_winnt_module>
  ThreadsPerChild 350
  MaxRequestsPerChild 5000
  Win32DisableAcceptEx
</IfModule>

请问我该怎么办才能让服务器稳定下来? 


------解决方案--------------------
很邪门啊,难道是你电脑中毒拉。
------解决方案--------------------
先看看日志吧,
------解决方案--------------------
看出错日志
另外php什么版本的?

还有一个可能是访问 ip太多了,你得修改一下你上面的参数 把数值都改小点.
------解决方案--------------------
你的那条错误是 因为加了Win32DisableAcceptEx 产生的,这个并不算是错误。
我以前也碰过你说的问题,不过一样的没有找到最根本的解决方法,只能够去修改

ThreadsPerChild 350
MaxRequestsPerChild 5000

的数量来让apache 自动在达到一定的数量时产生一个新的进程.忘记是不是这样描述了。

访问的数量多不多可以在网站加个统计链接,看看是不是流量过大,如果是的话 我还是建议将
apache php mysql 部署到linux上吧, win下的apache 真的是很无奈...
另外一个你或者可以考虑换成nginx 不过这个早期版本我测试的时候比apache还不稳定...
如果非要windows 那还是上iis+php+mysql 吧.
------解决方案--------------------
ThreadsPerchild和MaxRequestsPerchild值分别为1000和5000

太高啦...

你原来的数值我就觉得太高了,忘记跟你说了

往小的设置 分别设置到 

ThreadsPerChild 100
MaxRequestsPerChild 300

看看什么情况.

------解决方案--------------------

我也遇到过这种情况。
怎么都解决不了。
当时一直以为服务器被劫持。就重做了系统。可是情况依然。
之后就一遍一遍的检查源码。。。
是的。别人植入 代码,一直向外发包。之后。。


4.远程连接无预兆的中断,远程桌面连接一旦中断,网站便无法访问,IP也无法ping通。
 (隔一会就好了)
应该是重启了。。。