一般来说,WinNT系统下使用IIS,而Apache在Linux下应用的比较多,但是依然有很多人在WinNT系统下使用Apache而非IIS,可能是基于对Windows系统的熟悉吧。今天就来说一下在Windows系统下如果优化Apache的性能。 mpm_winnt.c 是专门针对Windows NT优化的MPM(多路处理模块),它使用一个单独的父进程产生一个单独的子进程,在这个子进程中轮流产生多个线程来处理请求。也就是说 mpm_winnt只能启动父子两个进程, 不能像Linux下那样同时启动多个进程。 mpm_winnt主要通过ThreadsPerChild和MaxRequestsPerChild两个参数来优化Apache,下面详细来说明一下。 ThreadsPerChild 这个参数用于设置每个进程的线程数, 子进程在启动时建立这些线程后就不再建立新的线程了. 一方面因为mpm_winnt不能启动多个进程, 所以这个数值要足够大,以便可以处理可能的请求高峰; 另一方面该参数以服务器的响应速度为准的, 数目太大的反而会变慢。因此需要综合均衡一个合理的数值。 mpm_winnt上的默认值是64, 最大值是1920. 这里建议设置为100-500之间,服务器性能高的话值大一些,反之值小一些。
Browsing the archives for the apache tag
1、prefork.c模块(一个非线程型的、预派生的MPM) prefork MPM 使用多个子进程,每个子进程只有一个线程。每个进程在某个确定的时间只能维持一个连接。在大多数平台上,Prefork MPM在效率上要比Worker MPM要高,但是内存使用大得多。prefork的无线程设计在某些情况下将比worker更有优势:它可以使用那些没有处理好线程安全的第三方模块,并且对于那些线程调试困难的平台而言,它也更容易调试一些。
来源:http://www.javaeye.com/topic/255556 同样的环境,大小差不了几个字节的页面, Nginx的worker_connections 1024; Apache的MaxClients 150,worker模式; 照理说压Nginx如果用1024个并发压效果是最好的,同样压apache并发150的话效果也是最好的。
优化apache prefork模式的参数, (384M内存openvz 的vps环境下面) <IfModule mpm_prefork_module> StartServers 12 MinSpareServers 12 MaxSpareServers 12 MaxClients 12 MaxRequestsPerChild 100 </IfModule> StartServers是启动的进程数,Min和Max是最小最大进程数, MaxClients是最大可连接的客户端,MaxRequestPerChild是一个进程的生命周期内处理的请求数量,一旦达到设定的这个值,就回收进程。
通过这篇文章,让我这个菜鸟成功的安装好了webserver需要的各种软件,特此转载下。 在windows xp系统中可以傻瓜化安装amp,即安装wamp server这个把apache、php、mysql、phpmyadmin集成在一起的套装即可,而且在选择apache模块时还特别方便,真是可以不 用动脑了。由于ubuntu现在的操作也基本傻瓜化了,安装lamp也同样方便,但由于其linux血统,有的地方还需要注意一下。以下简单说明步骤:
都是转的: 其一: 近来点击玩聚热点故事,偶尔遇到500错误,看了看Apache2.2.3日志(Windows2003下的),注意到如下错误丫的总出现: [warn] (OS 64)指定的网络名不再可用。 : winnt_accept: Asynchronous AcceptEx failed. 以前也看到,但忽略了。这回不能再放过她了。 看了几篇(winnt(MPM) - Apache 2.2 中文版参考手册),说是因为一些流行的Windows产品,比如防病毒软件或虚拟专用网络软件,会干扰AcceptEx()的正确操作。于是在apache配置文件中添加如下语句: <IfModule mpm_winnt.c> ThreadsPerChild 1000 MaxRequestsPerChild 10000 Win32DisableAcceptEx </IfModule> 停止Apache,再启动。确实新配置起作用了: [notice] Disabled use of AcceptEx() WinSock2 API [notice] mod_python: Creating 8 session mutexes based on 0 max processes and 1000 max threads. [notice] Child 2380: Child process is running [...]
windows server 2003下配置Apache,当访问人数很多的时候就会在Apache的错误日志里发现好多“ [warn] (OS 64)指定的网络名不再可用。: winnt_accept: Asynchronous AcceptEx failed.” 这可能是由于Apache与windows的不兼容引起,官方已经把此问题收录进BUG列表,但始终没有理想的解决办法。 近日,笔者也遇到了这样的事情,搜索一下,结果是不少,但基本上就一种解决办法。那就是关闭Apache MPM winnt,使用这个指令“Win32DisableAcceptEx”。 不过网上的办法毕竟仅供参考,按照那些做了,仍然不起作用。
在网上找到一篇好文,受益非浅。windows 2003 apache2下面: 指定的网络名不再可用 winnt_accept: Asynchronous AcceptEx failed 系列问题的综合整理 〖Apache 指定的网络名不再可用 winnt_accept: Asynchronous AcceptEx failed〗 转帖 (1): 这几天遇到了一个很多人都遇到过的问题,这个问题在google上有太多的人都遇到,但很少有指出最终的解决方案,大部分是解决了AcceptEx failed,但引起了内存的疯狂增加(“memory leak”)。这几天遇到这个问题后也费了不少功夫,但没有从网上找到最根本的解决办法,幸运的是,最终探索出了一个解决方案,在这里写出来,希望能帮助后来遇到问题的难友们尽早解决问题。 遇到的问题比较曲折,大体经过是: 某天,不能访问apache的页面,检查得知,apache在疯狂写日志,而且大部分是一句话:“winnt_accept: Asynchronous AcceptEx failed”,最多的时候写到了200M以上。经各方探索,最终在apache的手册上找到了一个解决方法: 在http.conf配置中设置Win32DisableAcceptEx参数。这样做的原因是,apache在某些Windows版本上可能兼容性不足,在调用AcceptEx接收请求时可能有问题,使用上面的参数禁用后,apache会使用另一套方案替代(BSD),这种方案效率稍微低些。详见: http://httpd.apache.org/docs/2.0/mod/mpm_winnt.htm l#win32disableacceptex
前面我用已经启用了网页压缩功能,见http://blog.haohtml.com/index.php/archives/3723,下面我们来对网页元素有效期进行设置。 首先,启用LoadModule expires_module modules/mod_expires.so,只要在httpd.conf中把前面的#号去掉就可以了。然后在httpd.conf最后添加以下几行 ExpiresActive On <FilesMatch "\.(gif|jpg|png|js|css)$"> ExpiresDefault "access plus 10 years" </FilesMatch> 重启apache,可以用firefox浏览器中的yslow插件查看最终效果,此时"add expires haders"项应该为A。表示配置成功.
先启用 LoadModule deflate_module modules/mod_deflate.so,只需要把前面的#去掉就可以了。 然后在httpd.conf最下面添加以下行: DeflateBufferSize 8096 DeflateCompressionLevel 1 DeflateMemLevel 9 DeflateWindowSize 15 DeflateFilterNote Input instream DeflateFilterNote Output outstream DeflateFilterNote Ratio ratio DeflateFilterNote ratio LogFormat '"%r" %{outstream}n/%{instream}n (%{ratio}n%%)' deflate CustomLog logs/deflate.log deflate <Location /> SetOutputFilter DEFLATE AddOutputFilterByType DEFLATE text/html text/css application/x-javascript text/plain text/xml </Location> 然后重启apache,即可。可以用firefox的插件yslow来查看效果,此时会看到"Compress components with gzip"项的等级为A,说明配置成功了.