您现在的位置是:首页 >学习教程 > Windows系统下Apache性能优化,提高并发网站首页学习教程
Windows系统下Apache性能优化,提高并发
Apache服务器配合PHP日趋成为当前网站架设的主流应用,但是在国内Linux系统毕竟没有Windows系统应用的多,因此飘易整理下在windows系统下如何优化apache的性能。
<IfModule mpm_winnt_module>
ThreadsPerChild 150
MaxRequestsPerChild 0
</IfModule>
以上是缺省的配置,一般情况下够用了,但负荷较大的网站就需要修改了,否则访问网站会变慢或没有响应。实际设置中可以根据apache-status查看apache实时连接状态,查看其中线程占用数目情况来进行相应的调整,我的服务器最后设置如下:
<IfModule mpm_winnt_module>
#ThreadLimit 350
ThreadsPerChild 350
MaxRequestsPerChild 10000
Win32DisableAcceptEx
</IfModule>
其中ThreadLimit是占用系统线程数限制,修改后会在apache-status中直接看到效果,就是对应的最大的可用线程数(如下所示):1 requests currently being processed, 349 idle workers
对于mpm_winnt,ThreadLimit的默认值是1920;对于其他mpM这个值是64。
注意:Apache在编译时内部有一个硬性的限制"ThreadLimit 20000"(对于mpm_winnt是"ThreadLimit 15000"),你不能超越这个限制。
该参数需要根据 apache-status实时的监控情况来调节,太大会导致内存增长过快,直到服务器当机,太小会导致服务器连接队列在高峰期时占满,从而导致网站连接 慢。同时我们应该修改另一个配置文件httpd-default.php中的超时设置来配合这个参数。
对于mpm_winnt,ThreadsPerChild的默认值是64;对于其他mpM是25。
MaxRequestsPerChild指令设置每个子进程在其生存期内允许伺服的最大请求数量。到达MaxRequestsPerChild的限制后,子进程将会结束。如果MaxRequestsPerChild为"0",子进程将永远不会结束。
在mpm_netware和mpm_winnt上的默认值是"0"。
将MaxRequestsPerChild设置成非零值有两个好处:
a)可以防止(偶然的)内存泄漏无限进行,从而耗尽内存。
b)给进程一个有限寿命,从而有助于当服务器负载减轻的时候减少活动进程的数量。
注意:对于KeepAlive链接,只有第一个请求会被计数。事实上,它改变了每个子进程限制最大链接数量的行为。
[warn] (OS 64)指定的网络名不再可用。 : winnt_accept: Asynchronous AcceptEx failed。
该参数为连接超时,缺省的300秒显然太大,缩小该参数就会减少同时连接数,即用户实际占用的线程数,这样就可以起到配合上面ThreadsPerChlid参数的作用。
该参数为是否保持活连接,目前网站中一个页面一般会包含多个文件,所以相应用户访问时会有多个请求,因此开启可以提高服务器性能。
该参数为最大的活连接请求数,可以根据网页实际包含的文件数目自行调节。
该参数为活连接的超时时间,一般只要设置成小于Timeout即可。
首先,apache的重新启动。
开始>>程序>>附件>>管理工具>>任务计划
添加任务计划>>下一步>>apache restart>>选择时间(可以设置的为每天凌晨2-4点)>>一路确定即可。
@ECHO OFF
net stop apache2
net start apache2
net stop mysql
net start mysql
(附加说明:上面的apache2与mysql为服务名称。)
这样每天早晨4点系统就会自动重启apache与mysql
(附加说明:04:00为重启时间,c:autostartserver.bat为第一步的bat文件地址)
把 LoadModule status_module modules/mod_status.so 这句加上,如果前面有带#号,开启的话,需要将#去除,并加入:
<location /server-status>
SetHandler server-status
Order Deny,Allow
Deny from all
Allow from localhost
</location>
ExtendedStatus On
这是一个完整的server-status的配置。
配置完成,重新启动apache即可(注意,不能直接restart,而要先stop,再start)
http://localhostm/server-status?refresh=N将表示访问状态页面可以每N秒自动刷新一次;
Deny from表示禁止的访问地址;
Allow from表示允许的地址访问;
ExtendedStatus On 表示的是待会访问的时候能看到详细的请求信息,另外该设置仅能用于全局设置,不能在特定的虚拟主机中打开或关闭。启用扩展状态信息将会导致服务器运行效率降低。
上一篇:apache做一个反向代理
下一篇:已无下一篇