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. (转)memcache缓存

    转自:http://369369.blog.51cto.com/319630/833234/ memcache分布式缓存 Memcache知识点梳理 Memcached概念:    Memcached ...

  2. [LAMP]安装-Debian

    sudo apt-get install build-essential sudo apt-get install mysql-server sudo apt-get install apache2 ...

  3. _beginthreadex创建线程,立即执行?

    一个线程创建后,并不是立马就执行,而是等时间片到来后才执行...  C++ Code  12345678910111213141516171819202122232425262728293031323 ...

  4. C/C++求职宝典重点笔记

    这是我之前准备找工作时看<C/C++求职宝典>一书做的笔记,都是一些笔试面试中常考的重点难点问题,但比较基础,适合初学者看. 1. char c = '\72'; 中的\72代表一个字符, ...

  5. 洛谷oj U3936(分成回文串) 邀请码:a0c9

    题目链接:传送门 题目大意:略 题目思路:DP 先预处理,分别以每个字母为中心处理能形成的回文串,再以两个字母为中心处理能形成的回文串. 然后 dp[i] 表示1~i 能形成的数目最少的回文串. 转移 ...

  6. git 四个基本对象、分支、三个存储区、reset-revert-变基、cherry-pick

    1:git四个基本对象     2:工作区.缓存去.历史区   3:Git 分支介绍 https://blog.csdn.net/wh_19910525/article/details/7470964 ...

  7. Linux增加swap分区的方法

    在装完Linux系统之后,建立Swap分区有两种方法. 1.新建磁盘分区作为swap分区2.用文件作为swap分区 (操作更简单,我更常用) 一.新建磁盘分区作为swap分区 1. # swapoff ...

  8. 移动APP自动化测试框架

    简介 移动APP的UI自动化测试长久以来一直是一个难点,难点在于UI的”变”, 变化导致自动化用例的大量维护.从分层测试的角度,自动化测试应该逐层进行.最大量实现自动化测试的应该是单元测试,最容易实现 ...

  9. 巨蟒python全栈开发数据库前端5:JavaScript1

    1.js介绍&变量&基础数据类型 2.类型查询&运算符&if判断&for循环 3.while循环&三元运算符 4.函数 5.今日总结 1.js介绍&am ...

  10. Exchange 2016 系统要求

    Exchange 2016 和早期版本的 Exchange Server 共存方案 Exchange 2016支持混合部署方案 Exchange 2016 的网络和目录服务器要求 目录服务体系结构: ...