一直习惯在Solaris和linux下跑amp,前些时服务器硬盘坏掉,所以启用新服务器。新系统是Windows 2003 Server,在上面按Unix上的经验配置Apache和Mysql时问题多多,经过折腾,总算是让服务器稳定下来,总结问题和解决办法如下(apache2.2.8+Mysql5.0.51a+php5.2.5):
1、Apache线程数和超时设置
Apache的线程数控制文件为conf/exrtra/http-mpm.conf,需要在httpd.conf中将 Include conf/extra/httpd-mpm.conf前#去掉,以使得http-mpm.conf生效。
在Windows系统中,起作用的是Winnt mpm段,
<IfModule mpm_winnt_module>
ThreadsPerChild 150
MaxRequestsPerChild 0
</IfModule>
缺省的配置一般够用,但负荷大的网站就要修改了,否则网站一下就变慢或没有响应了。实际可以根据apache-status查看apache实时连接状态,我的服务器最后设置如下:
<IfModule mpm_winnt_module>
ThreadsPerChild 350
ThreadLimit 350
MaxRequestsPerChild 10000
Win32DisableAcceptEx
EnableMMAP Off
EnableSendfile Off
</IfModule>
其中ThreadLimit是占用系统线程数限制,最好加上,否则会产生内存溢出导致Apache当掉。
MaxRequestsPerChild我理解是请求的缓存数,太小了影响性能,占用cpu时间,太大了占用内存资源,想象一下你网站的文件个数,然后自己设定,只要不为0就可以,防止内存溢出。
ThreadsPerChlid是apache的线程数,就是开了这么多的线程来等待响应客户端请求,需要根据apache-status实时的监控调节,大了会占用过多内存,小了会导致连接不上。而且应该同时修改httpd-default.php超时设置来配合。
在httpd.conf中去掉Include conf/extra/httpd-default.conf前的#以使httpd-default.php生效。
其中调节以下参数
Timeout 15 (连接超时缺省为300,太大了,缩小会减少同时连接数,即上面占用的实际线程数)
KeepAlive On (开启可以提高性能,因为一个页面一般会有多个请求)
MaxKeepAliveRequests 50 (这个数目自己根据网页内容调节)
KeepAliveTimeout 5 (这个小于Timeout就行)
Windows下长期运行Apache还是不如Unix稳定,可以让Apache在凌晨人少时自动重启,用Windows的计划任务可以非常方便的实现这一点,这样网管基本上可以安心睡觉了。
相关推荐
win2003下 apache+tomcat集成
win2003服务器性能优化[文].pdf
为了能在已经存在iis6的服务器上运行自己的Java程序,经过历时半年的尝试,今天终于搞定了,好开心啊。现在给大家下载!
Win2003+Apache2.2.22+PHP5.4安装配置详细教程 Win2003+Apache2.2.22+PHP5.4安装配置详细教程
windows2003系统下搭配apache+php+mysql+phpmyadmin+ZendOptimizer的服务器环境
win2003堆溢出.pdf win2003堆溢出.pdf win2003堆溢出.pdf
Win2003 IIS6.0性能优化篇,从网站找一些常见的优化方法,大家可以参考下。
windows2003日常的IIS6.0的日常维护,里面有一些教你如何良好的掌握IIS的维护功能
win2003服务器下ORACLE 内存突破1.7G实用办法
WIN2003 服务优化批处理 解压直接运行里面的BAT文件就可以了
Win2003 DNS服务器搭建Win2003 Win2003 DNS服务器搭建DNS服务器搭建Win2003 DNS服务器搭建
Win2003架设邮件服务器
win2003系统优化
WIN2003文件服务器共享WIN2003文件服务器共享
Win2003下部署Lotus Domino7服务器
Win2003服务器安全配置完全版 加强win2003服务器安全
全面详细的教你配置win2003web服务器,想学的朋友下载看看
win2003架设文件服务器以及文件夹共享、权限设置。
win2003域服务器的搭建,详细描述。
win2003服务器安全设置教程