Apache的工作模式

简介: Apache是目前世界排名第一的web服务器软件,跨平台和安全性高;支持SSL和多个虚拟主机;它是以进程为基础的结构,不适合多处理器环境,所以,web站点扩容通常是增加服务器而不是增加处理器。

Apache有三种稳定的工作模式,称为多进程处理模块MPM

1.Prefork工作模式

apache在启动之初,就预先派生一些子进程,然后等待请求过来;每个子进程只有一个线程,在一个时间点内,只能处理一个请求。

优点:成熟稳定,兼容所有模块,线程安全性高
缺点:不适合处理高并发请求;一个进程相对占用更多的系统资源,消耗更多的内存

2.Worker工作模式
使用多进程和多线程的混合模式,也预先派生了几个子进程(数量远少于prefork派生的);每个子进程创建多个线程,包括一个监听线程;每个请求会被分配一个线程来服务

优点:占据更少的内存(多个线程通常会共享父进程的内存),适合高并发的场景
缺点:必须考虑线程安全的问题,使用keep-alive长连接的时候,某个线程会被一直占用,即使没有收到请求,需要等待到超时才会释放;一个线程出现问题也会导致同一进程下的线程出现问题

keep-alive
在http早期,每个http请求都要求打开一个tcp socket连接,并且使用之后就断开这个tcp连接;
设置keepalive_timeout之后,httpd守护进程便会等待浏览器还有没有请求,这个等待就是keepalive_timeout时间;如果在规定的等待时间内没有收到浏览器发来的http请求,则关闭这个http连接;
优点:减少tcp连接的建立次数;减少time_wait状态连接;提高性能和提高httpd服务器的吞吐率
缺点:长时间的tcp连接容易导致系统资源无效占用;配置不当的keep-alive,比重复利用连接带来的损失大


3.Event工作模式
类似于worker的工作模式,最大区别是它解决了keep-alive场景下,长期被占用的线程的资源的浪费问题;event模式下,会有一个专门的线程来管理这些keep-alive类型的线程,当有真实的请求过来的时候,将请求传递给服务线程,执行完毕又允许它释放

优点:增强了高并发场景下的请求处理能力,减少tcp的连接数量
缺点:Event PMP不能在https访问下工作

查看apache工作模式的方法:
httpd -V |grep -i "Server MPM"

指定的方式:
在编译时使用 --with-mpm=xxx

目录
相关文章
|
5月前
|
分布式计算 大数据 分布式数据库
大数据-158 Apache Kylin 安装配置详解 集群模式启动(一)
大数据-158 Apache Kylin 安装配置详解 集群模式启动(一)
122 5
|
5月前
|
资源调度 大数据 分布式数据库
大数据-158 Apache Kylin 安装配置详解 集群模式启动(二)
大数据-158 Apache Kylin 安装配置详解 集群模式启动(二)
91 2
|
5月前
|
存储 分布式计算 druid
大数据-152 Apache Druid 集群模式 配置启动【下篇】 超详细!(一)
大数据-152 Apache Druid 集群模式 配置启动【下篇】 超详细!(一)
77 1
大数据-152 Apache Druid 集群模式 配置启动【下篇】 超详细!(一)
|
5月前
|
消息中间件 分布式计算 druid
大数据-152 Apache Druid 集群模式 配置启动【下篇】 超详细!(二)
大数据-152 Apache Druid 集群模式 配置启动【下篇】 超详细!(二)
72 2
|
5月前
|
存储 消息中间件 druid
大数据-151 Apache Druid 集群模式 配置启动【上篇】 超详细!
大数据-151 Apache Druid 集群模式 配置启动【上篇】 超详细!
138 1
|
6月前
|
Apache
多应用模式下,忽略项目的入口文件,重写Apache规则
本文介绍了在多应用模式下,如何通过编辑Apache的.htaccess文件来重写URL规则,从而实现忽略项目入口文件index.php进行访问的方法。
|
7月前
|
Linux Apache
在Linux中,apache有几种工作模式,分别介绍下其特点,并说明什么情况下采用不同的工作模式?
在Linux中,apache有几种工作模式,分别介绍下其特点,并说明什么情况下采用不同的工作模式?
|
7月前
|
监控 Apache
Apache 工作模式的区别及优化
【8月更文挑战第22天】Apache 工作模式的区别及优化
151 0
|
9月前
|
Apache 开发者
Apache Seata 如何解决 TCC 模式的幂等、悬挂和空回滚问题
【6月更文挑战第8天】Apache Seata 是一款分布式事务框架,解决TCC模式下的幂等、悬挂和空回滚问题。通过记录事务状态处理幂等,设置超时机制避免悬挂,明确标记Try操作成功来处理空回滚。Seata 提供丰富配置和管理功能,确保分布式事务的可靠性和效率,支持复杂事务处理场景,为企业业务发展提供支持。
312 7
|
10月前
|
运维 安全 Linux
LAMP架构调优(八)——Apache Worker模式调优
LAMP架构调优(八)——Apache Worker模式调优
76 0

热门文章

最新文章

推荐镜像

更多