apache的工作模式 和 最大连接数设置

经过测试 效果明显

(1)首选查看apache的工作模式
windows下的查看apache的工作模式命令:httpd -l
如果列出mod_win32.c,则表示是 win32.c 工作方式。 列出的全部内容如下所示:
core.c
mod_win32.c
mpm_winnt.c
http_core.c
mod_so.c

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

(2)mod_win32.c工作模式,对应的优化内容如下
在httpd.conf文件中,加入以下内容
<IfModule
mpm_winnt.c>
  
ThreadsPerChild 250
  
MaxRequestsPerChild 5000
</IfModule>

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.0.1
        
Allow from all
    
</Location>

打开以下地址:http://localhost/server-status,查看apache的运行情况!

apache的工作模式 和 最大连接数设置

时间: 2025-01-11 10:20:08

apache的工作模式 和 最大连接数设置的相关文章

Apache的工作模式和最大并发请求数设置

http://blog.csdn.net/hxsstar/article/details/18699045 什么是apache的工作模式? 个人理解:apache的工作模式就是apache在运行时候的内存分配,进程和线程的使用方式.举个例子:一台apache正在运行的服务器,如果有个用户访问这个apache,那么apache是启用一个进程来处理用户的请求呢?还是在已有的进程中启用一个线程来处理该用户的请求?这个选择就是 apache的工作模式来确定的.如果指定了某个工作模式比如prefork模式

apache查看工作模式及调优

一,查看工作模式 /usr/sbin/httpd -l Compiled in modules:  core.c  prefork.c  http_core.c  mod_so.c 如果出现prefork.c,表示apache工作在prefork模式下 二,prefork调优 ServerLimit 3000 StartServers 750 MinSpareServers 5 MaxSpareServers 100 MaxClients 3000 MaxRequestsPerChild 100

Apache的工作模式

参考链接: http://httpd.apache.org/docs/2.4/ http://httpd.apache.org/docs/2.4/mpm.html/  MPM是Multi-Processing Modules,表示Apache中的多路处理模块,目前在Linux上的Apache 2.2/2.4中包括三种模式:prefork.worker和event模式 1,查看apache 使用的工作模式 /usr/local/apache2/bin/httpd -l  Compiled in m

Apache 的工作模式

1.apache三种工作模式我们都知道Apache有三种工作模块,分别为prefork.worker.event.    prefork:多进程,每个请求用一个进程响应,这个过程会用到select机制来通知.    worker:多线程,一个进程可以生成多个线程,每个线程响应一个请求,但通知机制还是select不过可以接受更多的请求.    event:基于异步I/O模型,一个进程或线程,每个进程或线程响应多个用户请求,它是基于事件驱动(也就是epoll机制)实现的. 2.prefork的工作原

Apache的三种工作模式

Web服务器Apache目前一共有三种稳定的MPM(Multi-Processing Module,多进程处理模块)模式. 它们分别是prefork,worker和event,它们同时也代表这Apache的演变和发展. 如何查看我们的Apache的工作模式呢?可以使用httpd -V 命令查看,如我安装的Apache 2.4版本. $ /usr/local/apache24/bin/httpd -V Server version: Apache/2.4.18 (Unix) Server buil

Apache优化配置——工作模式

Apache所运行的硬件环境都是对性能影响最大的因素 各个硬件指标中,对性能影响最大的是内存,其次是硬盘的速度 ●Apache的工作模式 1.prefork模式(一个 非线程型的) ⑴.主要工作方式:当Apache服务器启动后,mpm_prefork模块会预先创建多个子进程(默认为5个),每个子进程只有一个线程,当接收到客户端的请求后,mpm_prefork模块再将请求转交给子进程处理,并且每个子进程同时只能用于处理单个请求.如果当前的请求数将超过预先创建的子进程数时,mpm_prefork模块

(转载)关于Apache 的两种工作模式

今天在查看服务器的时候,发现服务器http请求数 每天增长越来越多,在优化集群服务器的时候,查看到Apache 的工作模式是prefork,于是想到了worker 模式, 想暂时的把当前运行模式改成worker 试试 ,暂时缓解下... 关于这两种模式的介绍  就不写了,网上已经很多 转载即可 地址:http://www.ccvita.com/339.html 内容如下: apache作为现今web服务器用的最广泛也是最稳定的开源服务器软件,其工作模式有许多中,目前主要有两种模式:prefork

Apache服务的安装及工作模式介绍

博文大纲: 一.apache服务器的安装及功能介绍: 二.Apache服务的三种工作模式详解: 三.修改apache的工作模式: 四.apache工作模式的优化与修改: 五.进程与线程的区别. 前言 我们都知道Linux上常见的web服务器有:apache.nginx.tomcat! 其区别如下: apache:模块化服务器,支持模块较多.采用servlet处理模型,同步阻塞模型,工作模式多变,对于高并发的场景处理速度会比较慢,运行稳定. nginx:轻量级web服务器,自身支持模块较少,需要借

Apache网页深入优化——ab压力测试,工作模式

ab压力测是工具 Apache自带压力测试工具ab,简单易用,且可以模拟各种条件对web服务器发起测是请求 ab工具可以直接在web服务器本地发起测是请求,这对于需要了解服务器的处理性能至关重要,因为它不包括数据的网络传输时间以及用户pc本地的计算时间,从而可以通过观测各种时间指标判断web服务器的性能,以便进行参数的优化调整 在进行性能调整优化过程中,可用ab压力测是工具进行优化效果的测试 优化前先使用ab进行压力测试 优化后,重启服务,再使用ab进行压力测试 对比两次测试的结果,看优化效果是