`

( 转)windows 下apache的MPM

阅读更多
http://fanlb.blogbus.com/logs/119081614.html

一般来说,WinNT系统下使用IIS,而Apache在Linux下应用的比较多,但是依然有很多人在WinNT系统下使用Apache而非IIS,可能是基于对Windows系统的熟悉吧。今天就来说一下在Windows系统下如果优化Apache的性能。



执行"httpd -l"就看到windows+apache+php的环境检测apache是加载了哪种mpm模块,这里加载的是:mpm_winnt.c,所以我们优化的时候更改mpm_winnt.c里面的设置。



mpm_winnt.c 是专门针对Windows NT优化的MPM(多路处理模块),它使用一个单独的父进程产生一个单独的子进程,在这个子进程中轮流产生多个线程来处理请求。也就是说mpm_winnt只能启动父子两个进程, 不能像Linux下那样同时启动多个进程。

mpm_winnt主要通过ThreadsPerChild和MaxRequestsPerChild两个参数来优化Apache,下面详细来说明一下。

ThreadsPerChild
这个参数用于设置每个进程的线程数, 子进程在启动时建立这些线程后就不再建立新的线程了. 一方面因为mpm_winnt不能启动多个进程, 所以这个数值要足够大,以便可以处理可能的请求高峰; 另一方面该参数以服务器的响应速度为准的, 数目太大的反而会变慢。因此需要综合均衡一个合理的数值。

mpm_winnt上的默认值是64, 最大值是1920. 这里建议设置为100-500之间,服务器性能高的话值大一些,反之值小一些。

MaxRequestsPerChild
该参数表示每个子进程能够处理的最大请求数, 即同时间内子进程数目.设置为零表示不限制, mpm_winnt上的默认值就是0.

官方参考手册中不建议设置为0, 主要基于两点考虑: (1) 可以防止(偶然的)内存泄漏无限进行,从而耗尽内存; (2) 给进程一个有限寿命,从而有助于当服务器负载减轻的时候减少活动进程的数量。

因此这个参数的值更大程度上取决于服务器的内存,如果内存比较大的话可以设置为0或很大的数字,否则设置一个小的数值。需要说明的是,如果这个值设置的太小的话会造成Apache频繁重启,在日志文件中会看到如下的文字:

Process exiting because it reached MaxRequestsPerChild. Signaling the parent

这样一来降低了Apache的总体性能。

另外,可以通过查看Apache提供的server-status(状态报告)来验证当前所设置数值是否合理,在httpd.conf文件中做如下设置来打开它:

# 首先需要加载mod_status模块
LoadModule status_module modules/mod_status.so

# 然后设置访问的地址
<Location /server-status>
   SetHandler server-status
   Order deny,allow
   Deny from all
   # 如果限制某个IP访问则设置为 Allow from 192.168.1.1
   Allow from all
</Location>
综合来说,因为Windows NT下Apache只能启动父子两个进程,因此只能通过增大单个进程的线程数以及单个进程能够处理的最大请求数来进行优化。其他优化的参数同Linux系统下是一样的,大家可以加以参考。下面针对上述两个参数给出一个建议的设置:

<IfModule mpm_winnt.c>
ThreadsPerChild 250
MaxRequestsPerChild 5000
</IfModule>

分享到:
评论

相关推荐

    Windows下64位Apache-2.4.6

    **Apache在Windows 64位环境下的安装与配置** Apache HTTP Server是世界上最流行的Web服务器软件之一,它提供了高效且可扩展的平台,用于托管各种类型的网站和应用程序。本指南将详细讲解如何在Windows 64位操作...

    如何在windows底下配置Apache+php+MySQL配置

    在Windows环境下搭建Apache、PHP和MySQL的开发环境是许多初学者必须经历的步骤,这个过程可能会遇到一些挑战,但只要遵循正确的步骤,就能轻松完成。本文将详细介绍如何配置这三个组件,帮助初学者顺利搭建Web开发...

    Apache 2.0 for windows

    1. MPM(多进程模块):Apache支持预建的MPM,如`Prefork`、`Worker`和`Event`,可根据服务器硬件和工作负载选择最适合的模型。 2. 超时设置:调整 `KeepAliveTimeout` 和 `MaxKeepAliveRequests` 以优化连接管理。 ...

    apache2.4.9 for windows

    总结,Apache 2.4.9是Windows环境下一款强大且稳定的Web服务器,其丰富的配置选项和模块支持,使得它成为开发者和管理员的首选。正确安装和配置Apache,结合其他组件如PHP和MySQL,可以搭建高效、安全的Web服务环境...

    Apache v2.2.9 Windows版源码包 著名的APACHE服务器最新版的VC++源码包,编译即可使用。同时也是学习的好范例。

    2. **多线程与事件模型**:Apache支持多种处理模型,包括传统的预读取多进程(MPMprefork)和多线程(MPMworker),以及更高效的事件驱动模型(MPMevent)。 3. **HTTP协议支持**:Apache不仅支持HTTP/1.1协议,还...

    Apache Prefork、Worker和Event三种MPM详解

    Apache 提供的 Prefork、Worker 和 Event 三种 MPM 分别适用于不同场景下的性能需求。通过仔细配置这些 MPM 的参数,可以显著提高 Web 服务器的性能和可靠性。选择合适的 MPM 并进行合理的配置调整是优化 Apache ...

    Apache服务器2.4Windows64位版

    Apache服务器2.4 Windows 64位版是适用于64位Windows操作系统的最新官方版本的HTTP服务器软件。这个版本是基于.NET 2015编译优化的,旨在提供更高效的服务和更好的性能。在安装过程中,用户需要注意的是,由于Apache...

    apache-httpd-2.4的win64编译后版本

    此外,Apache HTTPD 2.4版本引入了一些重要的特性,如事件模型(Event MPM),它能提高高并发环境下的性能;支持HTTP/2协议,提供更快的页面加载速度;以及增强的日志记录和错误处理功能,便于调试和监控服务器状态...

    Apache 2.4.39 Win64

    1. **选择安装位置**:将Apache服务器安装到合适的目录下。 2. **配置服务器**:修改httpd.conf文件,设置监听端口、根目录、虚拟主机等信息。 3. **启动服务**:运行httpd.exe启动Apache服务器,或者通过系统服务...

    apache 2.2.34 win32 httpd 最终维护版

    3. **更好的性能**:通过改进的多路复用模型(如Prefork和Worker MPM),Apache 2.2能够更有效地处理并发连接,提高服务器性能。 4. **访问控制和身份验证**:使用.htaccess文件,管理员可以轻松地实现基于文件或...

    Apache2.4-win64位

    2. **事件模型**:在Apache2.4中,事件模型替代了旧的多进程(MPM)模型,如prefork和worker。事件模型提高了并发处理能力,降低了资源消耗,尤其适合高流量网站。 3. **HTTP/2支持**:Apache2.4开始支持HTTP/2协议...

    Apache_2.4.4_for_Windows

    例如,MPM(多进程模块)的改进使得Apache能够更好地处理高并发请求,提供了Event和Worker模式,以适应不同类型的负载。此外,2.4版本还引入了新的配置语法,提高了配置文件的可读性和易维护性。 在提供的压缩包中...

    Apache 2.4.37-64位Windows

    Apache HTTP Server 2.4.37是Apache项目的一个重要版本,主要针对64位Windows操作系统设计。这个服务器软件在互联网行业中广泛使用,是搭建Web服务的基础组件之一。它的核心功能在于接收HTTP请求并返回相应的HTTP...

    apache bug

    4. **线程模型问题**:Apache在Windows上可以配置为多线程(MPM Worker)或单进程多线程(MPM WinNT/Event)。选择错误的线程模型可能导致性能问题或服务崩溃。 5. **依赖库冲突**:Apache的`bin`、`lib`和`modules...

    Apache 2.2安装包+Apache 2.2 中文手册

    在Windows环境下,通常为.exe格式;在Linux或Unix环境下,可能是.tar.gz或.deb/rpm格式。 2. 解压:对于非Windows系统,使用tar命令解压文件。对于Windows,双击.exe执行安装向导。 3. 配置:在安装过程中,你需要...

    apache2.2_安装,优化、模块配置

    ### Apache 2.2 安装、优化与模块配置...综上所述,Apache 2.2 的安装和配置涉及到多个方面,包括源码编译、模块选择、MPM配置以及安全性和性能优化等。合理地配置这些参数可以显著提高Apache服务器的性能和稳定性。

    Apache HTTP Server Version 2.2 文档(2013.4.10最新)

    在Microsoft Windows中使用Apache 在Microsoft Windows上编译Apache ab - Apache HTTP服务器性能测试工具 apachectl - Apache HTTP服务器控制接口 apxs - Apache 扩展工具 configure - 配置源代码树 dbmmanage - ...

    apache2.4 (httpd-2.4.23-win64-VC14)

    这个版本是httpd-2.4.23-win64-VC14,特别针对Windows 64位操作系统进行了优化,并使用Visual C++ 14编译器构建,确保了在Windows环境下高效运行。 **模块化设计** Apache2.4的核心变化之一是加强了模块化设计,...

    apache-httpd-2.4.58-win64-VS17.zip

    - **MPM(多进程模块)**:Apache 2.4支持多种MPM,如`prefork`、`worker`和`event`,分别对应于不同的进程/线程模型,以适应不同的服务器负载需求。 - **HTTP/2支持**:相比于HTTP/1.1,HTTP/2提供了更高效的连接...

    apache 2.4.10 win32位版本

    2. 更高效的事件模型:Apache 2.4改进了多路复用(MPM,Multi-Processing Module)模型,如WinNT MPM,提供了更好的并发处理能力,提高了服务器响应速度。 3. 改进的安全性:包括支持最新的SSL/TLS协议版本,如TLSv...

Global site tag (gtag.js) - Google Analytics