Apahce 工作模式配置

1、查看当前MPM工作模式

/usr/local/apache2/bin/apachectl -V

Server version: Apache/2.4.27 (Unix)
Server built: Dec 24 2017 07:11:28
Server's Module Magic Number: 20120211:68
Server loaded: APR 1.6.3, APR-UTIL 1.6.1
Compiled using: APR 1.6.3, APR-UTIL 1.6.1
Architecture: 32-bit
# MPM模式
Server MPM: event
threaded: yes (fixed thread count)
forked: yes (variable process count)
Server compiled with....
-D APR_HAS_SENDFILE
-D APR_HAS_MMAP
-D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
-D APR_USE_SYSVSEM_SERIALIZE
-D APR_USE_PTHREAD_SERIALIZE
-D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
-D APR_HAS_OTHER_CHILD
-D AP_HAVE_RELIABLE_PIPED_LOGS
-D DYNAMIC_MODULE_LIMIT=256
-D HTTPD_ROOT="/usr/local/apache2"
-D SUEXEC_BIN="/usr/local/apache2/bin/suexec"
-D DEFAULT_PIDLOG="logs/httpd.pid"
-D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
-D DEFAULT_ERRORLOG="logs/error_log"
-D AP_TYPES_CONFIG_FILE="conf/mime.types"
-D SERVER_CONFIG_FILE="conf/httpd.conf"

查看MPM模式

/usr/local/apache2/bin/apachectl -l

Compiled in modules:
core.c
mod_so.c
http_core.c
event.c

查看调用模块

2、编辑prefork需要在主配置文件下解注释

vim /usr/local/apache2/conf/httpd.conf

Include conf/extra/httpd-mpm.conf

3、在httpd-mpm.conf下进行文件配置

/usr/local/apache2/conf/extra/httpd-mpm.conf

Apahce Prefork模式

使用参数

ServerLimit: 再Apache2.0后 可设置超过256线程限制,要大于 MaxClients。

StartServers:开启的子进程数量,prefork默认为5。

MinSpareServers: 指定空闲子进程的最小数量,默认为5。Apache 每大约1秒的速度新建进程

MaxSpareServers:最大空闲空闲进程数量,大于数量的会一直杀,直到指定最小空闲数。 空闲进程多余该进程数会自动释放资源。

ServerLimit:修改apache最大并发连接数的参数设置,要将它放在MaxRequestWorkers前面,并且它的值也一定要大

MaxClients:最大并发客户端链接数。再Aapache1.3种最大只能设置256,但在Apache2.0中,可以通过在配置开头中增加ServerLimit项目来突破256限制,此时必须  ServerLimit ≤ MaxClients ≤ 20000

MaxRequestsPerChild:限制子进程请求响应个数,多少请求后派生新的子进程、0为永远。 

MaxRequestsPerChild:不要设置为0,设置为非0,可以保护Apache进程免遭内存泄漏

MaxConnectionsPerChild:每个子进程在其生存期内允许伺服的最大请求数量,默认为10000.到达

MaxRequestWorkers:最大同时处理请求的进程数量,也是最大的同时连接数,表示了apache的最大请求并发能力

使用案例

# mpm_perfork模块
<IfModule mpm_prefork_module>
StartServers 5 # 推荐设置:小=默认 中=20~50 大=50~100
MinSpareServers 5 # 推荐设置:与StartServers保持一致
MaxSpareServers 10 # 推荐设置:小=20 中=30~80 大=80~120
ServerLimit 150 # 推荐设置:与MaxRequestWorkers保持一致
MaxClients 150 # 推荐设置:小=500 中=500~1500 大型=1500~3000
MaxRequestsPerChild 0 # 推荐设置:小=10000 中或大=10000~500000
</IfModule>

配置文件

其他说明

在Unix系统中,很多服务(Service)的守护进程(Daemon)在启动时会创建一个进程以准备应答可能的连接请求,服务即进入了端口监听状态,当一个来自客户端(Client)的请求被发送至服务所监听的端口时,该服务进程即会处理该请求,在处理过程中,该进程处于独占状态,也就是说如果此时有其他请求到达,这些请求只能“排队”等待当前请求处理完成且服务进程释放。这样就会导致越来越多的请求处于队列等待状态,实际表现就是该服务处理能力非常低下。Apache使用Prefork模式很好的解决了这一问题。

使用环境

将MaxRequestsPerChild设置成非零值有两个好处:
1.可以防止(偶然的)内存泄漏无限进行,从而耗尽内存。
2.给进程一个有限寿命,从而有助于当服务器负载减轻的时候减少活动进程的数量。

Apahce Worker模式

使用参数

StartServers:初始数量的服务器进程开始。

MinSpareThreads:最小数量的工作线程,保存备用。

MaxSpareThreads:最大数量的工作线程,保存备用。

ThreadsPerChild:固定数量的工作线程在每个服务器进程。

MaxRequestWorkers:最大数量的工作线程。

MaxConnectionsPerChild:最大连接数的一个服务器进程服务。

使用案例

#mpm_worker模块
<IfModule mpm_worker_module>
  StartServers 2 # 推荐设置:小=默认 中=3~5 大=5~10
  MaxClients 150 # 推荐设置:小=500 中=500~1500 大型=1500~3000
  MinSpareThreads 25 # 推荐设置:小=默认 中=50~100 大=100~200
  MaxSpareThreads 75 # 推荐设置:小=默认 中=80~160 大=200~400
  ThreadsPerChild 25 # 推荐设置:小=默认 中=50~100 大型=100~200
  MaxRequestsPerChild 0 # 推荐设置:小=10000 中或大=10000~50000
</IfModule>

配置文件

其他说明

注:如果MaxClients/ThreadsPerChild大于16,还需额外设置ServerLimit参数,ServerLimit必须大于等于 MaxClients/ThreadsPerChild 的值。

 Apahce mpm_winnt模式

使用参数

ThreadsPerChild:每个子进程的最大并发线程数。

MaxRequestsPerChild:每个子进程允许处理的请求总数。

使用案例

# 使用mpm_winnt_module模式
<IfModule mpm_winnt_module>
ThreadsPerChild 150 # 推荐设置:小型网站=1000 中型网站=1000~2000 大型网站=2000~3500
MaxRequestsPerChild 0 # 推荐设置:小=10000 中或大=20000~100000
</IfModule>

配置文件

其他说明

注:由于mpm_winnt模块只会创建1个子进程,因此这里对单个子进程的参数设置就相当于对整个Apache的参数设置。

注:mpm_winnt模块是专门针对Windows操作系统而优化设计的MPM模块。它只创建一个单独的子进程,并在这个子进程中轮流产生多个线程来处理请求。

Apache 工作模式配置优化的更多相关文章

  1. apache工作模式worker以及prefork的切换

    apache比较常用的工作模式有worker以及prefork两种方式. 如果在编译时候不指定,系统默认的是prefork模式:如果需要换成worker模式,需要在编译的时候带上编译参数:--with ...

  2. Apache 工作模式详解

    Apache 工作模式详解 Apache 2.X  支持插入式并行处理模块,称为多路处理模块(MPM).在编译apache时必须选择也只能选择一个MPM,对类UNIX系统,有几个不同的MPM可供选择, ...

  3. apache工作模式总结及网站访问缓慢处理记录

    apache目前主要有两种模式:prefork模式和worker模式:1)prefork模式(默认模式)prefork是Unix平台上的默认(缺省)MPM,使用多个子进程,每个子进程只有一个线程.每个 ...

  4. apache工作模式:prefork和worker

    apache作为现今web服务器用的最广泛也是最稳定的开源服务器软件,其工作模式有许多中,目前主要有两种模式:prefork模式和worker模式 一.两种模式 prefork模式: prefork是 ...

  5. apache 工作模式

    apache三种工作模式: prefork(2.4前默认)/worker/event(2.4默认)内容整理来自以下网站http://m.blog.csdn.net/article/details?id ...

  6. apache工作模式

    查看当前apache的工作模式 apachectl -l prefork模式 <IfModule prefork.c>StartServers 5MinSpareServers 5MaxS ...

  7. Apache 工作模式的正确配置

       prefork work event

  8. Apache服务器性能如何优化

    配置网站,要充分的把系统资源利用出去,榨干系统的一切潜能,让网站速度发挥到极致.Apache,是用户浏览和网站数据的一个中间桥梁.但是在这里,我们虽然做得并不是很多,但是如果心细打理,有些设置也会起到 ...

  9. Nginx与Apache工作方式

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://going.blog.51cto.com/7876557/1304204 Ngin ...

随机推荐

  1. 【Raspberry pi】GPIO注意事项

    1.GPIO编码的方法 第三列是树莓派板子上的自然编号(左边引脚为1-15,右边引脚为2-26),RPi.GPIO.setmode(GPIO.BOARD)采用这列编号 树莓派主芯片提供商Broadco ...

  2. (转)使用.NET Reflector 查看Unity引擎里面的DLL文件

    当你查看unity里面API的时候,是不是有时候追踪了一两步就碰到DLL文件走不下去了呢?很是不爽吧. 这种问题我也是经常碰到.这是人家商业引擎不想让你看到底层代码啦,所以着急不得. 不过,今天我终于 ...

  3. python json 序列化任意数据类型

    json默认支持的数据类型 +-------------------+---------------+ | Python | JSON | +===================+========= ...

  4. MVC自定义验证 jquery.validate.unobtrusive

    MVC的验证 jquery.validate.unobtrusive 阅读目录 一.应用 二.验证规则 1.一.简单规则 2.二.复杂一点的规则 3.三.再复杂一点的规则(正则) 4.四.再再复杂一点 ...

  5. c#的小技巧

    很多.net的使用小技巧,总是要自己记下来的,给自己. 一:时间格式话中H和h的区别 DateTime.ToString("yyyy-MM-dd HH:mm:ss");//转化成2 ...

  6. Python全栈day24-25(面向对象编程)

    参考文档: http://www.cnblogs.com/linhaifeng/articles/6182264.html# 类:把一类事物的相同的特征和动作整合到一起就是类,类是抽象的概练 对象:就 ...

  7. confirm() event.target.getAttribute('id')

    w <?php $wecho = '<form id="del' . $wid . '" method="POST" action="&q ...

  8. 使用Docker创建Elasticsearch服务

    一.Docker是什么? Docker是一个开源工具,能将一个WEB应用封装在一个轻量级,便携且独立的容器里,然后可以运行在几乎任何服务环境下.Docker的容器能使应用跑在任何服务器上并且表现一致. ...

  9. 6.Insert Documents-官方文档摘录

    总结 1.插入单文档 db.inventory.insertOne( { item: "canvas", qty: , tags: , w: 35.5, uom: "cm ...

  10. Linux网络调试工具资料链接

    Dropbox: https://huoding.com/2016/12/15/574 Tcpdump: http://roclinux.cn/?p=2474