Apache的多路处理模块MPM:Prefork Worker Event
- 如何确认当前apache使用哪种模式
- 通过/etc/init.d/httpd中的来确认系统apache的运行脚本路径
apachectl=/usr/sbin/apachectl
httpd=${HTTPD-/usr/sbin/httpd}
prog=httpd
pidfile=${PIDFILE-/var/run/httpd.pid}
lockfile=${LOCKFILE-/var/lock/subsys/httpd}
- /usr/sbin/httpd -l
- /usr/sbin/httpd -V | grep MPM
- 通过/etc/init.d/httpd中的来确认系统apache的运行脚本路径
- prefork MPM使用多个子进程,每个子进程一个线程的方式处理请求,每个进程一个时间只处理一个请求。
- 快,因为它每个子进程没有管理多个子线程的负担
- 稳定,因为某个请求出问题,不会影响到其他进程,因为他们拥有独立的地址空间,变量和内存。
- 可用于非线程安全的第三方模块,比如可以使用非线程安全的mod_php模块,但在大量并发的情况下,会迅速大量消耗资源
- 调优的关键参数,MaxClients和ServerLimit。MaxClients小于256的时候,ServerLimit不起作用,其默认值是256。一般这两个值设置成一样。MaxClients决定你的最大并发数。
- MaxClients = (Total Memory – Critical Services Memory(OS)) / Size Per Apache process(about 30M)
- 计算现有系统的每个apache进程的内存使用量
- ps aux | grep httpd | grep -v pts | awk '{ tot += $6; procs += 1; print $1,$2,$6,$11 } END { print "TOTAL: ",tot,"/",procs,"=",tot/procs }'
- 估算MaxConnectionsPerChild公式
- total amount of daily requests / total number of daily processes
- worker MPM使用多个子进程,每个子进程多个线程的混合方式处理请求,每个线程一个时间只处理一个请求。对资源比较友好,适用于高并发情况
- 常用于高并发
- 典型配置:
ServerLimit 40
StartServers 2
MaxClients 1000
MinSpareThreads 25
MaxSpareThreads 75
ThreadsPerChild 25
MaxRequestsPerChild 0- 这里ServerLimit限制进程数,MaxClients指的是同时最大连接数:ServerLimit = MaxClients / ThreadsPerChild
- event MPM在进程和线程的模式上和worker一样,区别在于线程只负责处理请求本身,当请求处理完该线程立即可以回收,http的连接管理交给父进程。
- worker模式的时候,如果该http连接的keepalive设置的比较长的话,即使该请求已经处理完,也不能回收,因为http连接没中断,这样就需要维持更多的线程。
Apache的多路处理模块MPM:Prefork Worker Event的更多相关文章
- Apache的多处理模块MPM
本博文主要参数 Apache 2.2文档以及Apache模块开发指南 Apache的整个运行可以分为两个阶段:启动阶段和运行阶段. 在启动阶段时,它以ROOT特权来启动,进行解析配置文件(一般就是ht ...
- Apache-三种工作模式(prefork/ worker/Event)
Apache-两种工作模式(prefork/ worker/Event) Apache 2.X 支持插入式并行处理模块,称为多进程处理模块(MPM).在编译apache时必须选择也只能选择一个MPM ...
- Httpd服务入门知识-Httpd服务常见配置案例之MPM( Multi-Processing Module)多路处理模块
Httpd服务入门知识-Httpd服务常见配置案例之MPM( Multi-Processing Module)多路处理模块 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.M ...
- Apache 两种mpm prefork 和 worker 的区别
Apache默认的是线程安全的prefork,Prefork MPM 使用多个子进程,每个子进程有一个线程,每个进程每次只处理一个请求连接,一个请求出故障后不会影响其他请求,是线程安全的 worker ...
- Apache常用2种工作模式prefork和worker比较
Apache两种常用工作模式:prefork和worker. prefork MPM prefork是一个非线程型的.预派生的MPM,使用多个进程,每个进程在某个确定的时间只单独处理一个连接,效率高, ...
- Apache学习---多进程处理模块(MPM)原理详解
查看Apache的模式,可以使用httpd -V命令来查看: 1. prefork MPM prefork模式可以算是很古老但是非常稳定的Apache模式.Apache在启动之初,就预先fork一些子 ...
- Apache优化之多路处理模块理解
前言: 当项目被多人访问时导致访问数度变慢,查了许多资料,了解到Apache的核心模块——MPM(多路处理访问模块).在此对MPM的一些知识点进行整理. MPM_WINNT模块 windows系统使用 ...
- Apache HTTP Server mod_session_dbd模块mod_session_dbd.c 安全漏洞
漏洞名称: Apache HTTP Server mod_session_dbd模块mod_session_dbd.c 安全漏洞 CNNVD编号: CNNVD-201307-488 发布时间: 201 ...
- apache +php +php curl 模块设置
2.2 linux 下面 2.2.1 web服务器安装 1目前采用的web服务器是apache2,在ubuntu 下安装 apt-getupdate apt-get installapache2 测试 ...
随机推荐
- Android 如何添加一种锁屏方式
前言 欢迎大家我分享和推荐好用的代码段~~ 声明 欢迎转载,但请保留文章原始出处: CSDN:http://www.csdn.net ...
- 使用android x86进行android应用开发.
首发论坛 安卓巴士.id:android_bin 一.必备工具: 1.虚拟机软件(本文使用virtual Box为例), 2.android x86镜像,下载地址http://www.android- ...
- Asp.Net转换Html加号显示为空格的字符!(自已备用)
Asp.Net转换Html显示为空格的字符!(自已备用) 显示+(加号),须要替换一下!
- [ZZ]如果有人问你数据库的原理,叫他看这篇文章
如果有人问你数据库的原理,叫他看这篇文章 http://blog.jobbole.com/100349/ 文章把知识链都给串起来,对数据库做一个概述. 合并排序 阵列.树和哈希表 B+树索引概述 数据 ...
- Qt中使用QProcess备份和恢复Mysql数据库
分类: Qt2011-02-18 21:35 1395人阅读 评论(3) 收藏 举报 qtmysql数据库windowspathcmd . 使用Qt做MySQL数据库开发,遇到需要备份.还原数据库的问 ...
- java_spring_依赖注入
IOC反转控制 PersonService属性 PersonDao personDao接受通过xml注入的对象 PersonDaoBean. Person中save()调用 PersonDaoBea ...
- 将字符串写进txt中方式
try { File file = new File(filePath); PrintStream ps = new PrintStream(new FileOutputStream(file)); ...
- UNIX V6内核源码剖析——unix v6 全貌
1. UNIX V6 运行硬件环境——PDP-11/40 PDP-11/40指令和数据都是以16比特为单位.对它而言,一个字的宽度为16比特. PDP-11/40以及周边设备的寄存器被映射到内存最高位 ...
- WPF 中的绑定方式
1.元素间的绑定 xaml方式 <Slider Name="slider1" Value="20"/> <TextBlock T ...
- FullPage.js全屏滚动插件的配置项、方法和回调函数
fullPage.js 是一个基于 jQuery 的插件,它能够很方便.很轻松的制作出全屏网站,主要功能有: 支持鼠标滚动 支持前进后退和键盘控制 多个回调函数 支持手机.平板触摸事件 支持 CSS3 ...