一般来说,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之间,服务器性能高的话值大一些,反之值小一些。
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
分享到:
相关推荐
《奈恩-mpm-fea:计算力学的开源探索》 奈恩-mpm-fea是一个专注于计算力学的开源项目,其核心在于提供一个强大的有限元分析(FEA)工具。项目的名称“nairn-mpm-fea”可能是以项目创始人或主要贡献者的名字命名,...
Apache 2.4引入了许多性能改进和优化选项,例如MPM(多进程模块)选择,可以根据服务器负载和硬件资源调整。例如,对于单CPU系统,Prefork MPM可能是个好选择,而对于多核系统,Worker或Event MPM可能会更合适。 9...
标题 "apache-httpd-2.4.58-win64-VS17.zip" 指的是 Apache HTTP 服务器的2.4.58版本,适用于64位Windows操作系统,并且是使用Visual Studio 2017编译的。这个压缩包包含了一系列用于在Windows平台上搭建和运行...
具有切割和耦合功能的高性能 MLS-MPM 求解器 (CPIC) (现已获得 MIT 许可!) 具有位移不连续性和双向刚体耦合的移动最小二乘材料点方法,图形学 ACM 交易 (SIGGRAPH 2018)。 作者: 、 、中国科技 、 、 、 、 。...
8. **性能优化**: Apache 2.4引入了多项性能提升特性,如事件模型(Event MPM)和多线程工作进程模型(Worker MPM),这些可以帮助服务器更有效地处理高并发请求。 9. **与其他技术的集成**: Apache常与PHP、Perl、...
通过以上对Apache性能优化的知识点详细介绍,我们可以看出Apache通过其灵活的配置选项和不同的MPM模式为用户提供了一种高效稳定的服务方案。正确选择并配置适合自身需求的MPM模式对于提升Apache服务器的性能至关重要...
此外,Apache HTTPD 2.4版本引入了一些重要的特性,如事件模型(Event MPM),它能提高高并发环境下的性能;支持HTTP/2协议,提供更快的页面加载速度;以及增强的日志记录和错误处理功能,便于调试和监控服务器状态...
通过深入学习和使用"taichi_mpm-master",开发者可以学习到如何利用Taichi库进行物理模拟,掌握高性能计算和GPU编程技巧,同时也可以了解到MPM方法在实际问题中的应用。这对于计算机图形学、游戏开发、工程仿真等...
6. **性能优化**:Apache 2.4版引入了一些性能提升,例如事件模型(Event MPM)和多线程模型(Prefork MPM),可以根据服务器负载和资源进行选择。 7. **.htaccess文件**:Apache允许在每个目录下使用".htaccess...
2. **多线程处理**:在Windows环境下,Apache通常采用多线程模型(MPM)来处理并发请求,比如WinNT MPM,它可以更有效地利用系统资源,提高响应速度。 3. **虚拟主机**:Apache支持多个虚拟主机,可以在同一台...
综上所述,Apache集群性能优化主要通过调整MPM配置和采用其他优化策略实现,而日志切分则是通过工具如cronolog进行,以提高日志管理和分析的效率。这两者结合,可以帮助我们更好地维护和优化Apache服务器在集群环境...
### Apache性能优化技巧详解 #### 一、简介 在当今高度依赖互联网的世界中,Web服务器的性能至关重要。Apache作为全球最流行的Web服务器之一,其性能直接影响到网站的响应速度及用户体验。本文将详细介绍25个实用...
笔者总结了调试过程中的问题和解决办法如下,以供有类似需求的网管员参考(系统环境为Windows Server 2003和apache2.2.8): 1、http-mpm.conf设置 Apache的线程数控制文件为http-mpm.conf,在conf/exrtra目录下面,要...
描述中的内容"apache_223-win32-apache_223-win32-"似乎是重复的,可能是输入错误或者没有提供完整的信息。通常,描述会包含有关软件包的详细信息,如安装步骤、系统需求、特性或更新日志。然而,由于这里提供的描述...
在维护和优化Apache服务器的过程中,你可以利用Apache的特性,如多进程模型(MPM,Multi-Process Module)、模块化的架构、以及丰富的日志功能来提高性能和安全性。此外,通过结合其他开源软件,如PHP、MySQL,你...
Apache Httpd 2.4.x系列引入了许多新特性和性能优化,包括: 1. **模块化设计**:Apache Httpd以其模块化的架构著称,允许用户根据需求动态加载或卸载功能模块。例如,mod_rewrite用于URL重写,mod_security用于...
4. **多线程支持**:在Windows环境下,Apache使用多线程模型(WinNT MPM)提供服务,提高响应速度。 5. **日志记录**:Apache可以详细记录服务器活动,为故障排查和性能分析提供数据。 6. **URL重写**:通过mod_...
### Apache 2.2 安装、优化与模块配置...综上所述,Apache 2.2 的安装和配置涉及到多个方面,包括源码编译、模块选择、MPM配置以及安全性和性能优化等。合理地配置这些参数可以显著提高Apache服务器的性能和稳定性。
### Apache2.2安全配置和性能优化 #### 安全配置 **Apache禁止目录遍历:** 为了确保Apache服务器的安全性,防止恶意用户通过遍历目录来获取未授权的文件或者敏感信息,需要对Apache进行相应的配置。在Apache中,...