Apache 是一个非常成熟的Web服务器,工作模式也在不断优化
现在 Apache 已经有了 3 个核心工作模式,看下他们各自的工作方式是什么样的
(1)prefork MPM,多进程工作模式
先生成主进程,完成基础的初始化工作,然后,通过fork预先产生一批的子进程(子进程会复制父进程的内存空间,不需要再做基础的初始化工作),然后等待服务
之所以预先生成,是为了减少频繁创建和销毁进程的开销
多进程的好处,是进程之间的内存数据不会相互干扰,同时,某个进程异常终止也不会影响其他进程。但是,就内存而言,每个子进程占用了很多的内存,因为子进程的内存数据是复制父进程的
存在大量的“重复数据”被放在内存中。最终,导致我们能够生成的子进程最大数量是很有限
在面对高并发时,因为有不少Keep-alive的长连接,将这些子进程“霸占”住,很可能导致可用子进程耗尽。因此,prefork并不太适合高并发场景
(2)worker MPM,多进程和多线程的混合模式
使用了多进程和多线程的混合模式,它也预先fork了几个子进程(数量很少),然后每个子进程创建一些线程
每个请求过来,会被分配到1个线程来服务,线程共享父进程的内存空间,因此,内存的占用会减少一些,在高并发的场景下,比起prefork更省内存
但是,它并没有解决Keep-alive的长连接“霸占”线程的问题,只是对象变成了比较轻量的线程。
使用进程和线程混合模式,是因为要考虑稳定性,如果一个线程挂了,会导致同一个进程下其他子线程都挂了,如果全部采用多线程,某个线程挂掉,就会影响整个Apache服务
线程共享父进程的内存空间,减少了内存的占用,却又引起了新的问题,就是“线程安全”,多个线程修改共享资源导致的“竞争行为”,因此,一定程度上增加Web服务的不稳定性
(3)event MPM,多进程和多线程的混合模式,引入Epoll
比较新的模式,2.4以后已经是稳定可用的模式,它和worker模式很像,最大的区别在于,它解决了keep-alive场景下,长期被占用的线程的资源浪费问题
event MPM中,会有一个专门的线程来管理这些keep-alive类型的线程,当有真实请求过来的时候,将请求传递给服务线程,执行完毕后,又允许它释放,它 减少了“占据”连接而又不使用的资源浪费,增强了高并发场景下的请求处理能力。因为减少了“闲等”的线程,线程的数量减少,同等场景下,内存占用会下降一 些。
Apache的三种模式中在真实应用场景中,event MPM是最节约内存的
http://www.techug.com/apache-three-work-mode
相关推荐
Apache服务器是世界上最流行的Web服务器软件之一,其强大的功能和灵活性主要得益于丰富的指令集。本文将详细解析Apache服务器的一些核心指令,帮助读者更好地理解和配置Apache服务器。 一、基本配置指令 1. ...
Apache服务器是一款广泛使用的Web服务器软件,由Apache Group开发和维护。它起源于NCSA Web服务器,后者曾是1995年的一款顶级Web服务器。随着NCSA Web服务器的主要开发者离开,使用该服务器的用户开始分享他们的补丁...
Apache服务器是一款广泛使用的开源Web服务器软件,它能够高效地处理HTTP请求,并提供多种功能扩展。Apache支持跨平台运行,包括Windows、Linux、Unix等操作系统。由于其高度可定制性、稳定性以及强大的功能集,...
Apache是一款广泛使用的Web服务器软件,由Apache软件基金会维护。它支持多种操作系统,包括Windows、Linux等,并且开源免费。Apache以其稳定性、安全性以及丰富的功能特性而受到全球用户的喜爱。 #### 二、Apache+...
Apache服务器是世界上最流行的Web服务器软件之一,被广泛用于托管各种网站和应用程序。它以其开源、稳定、高效和可扩展性而著称。本教程将详细讲解如何在Windows和Linux操作系统上安装Apache服务器,并解决Vue项目在...
Apache服务器是世界上最流行的Web服务器软件,它开源且免费,提供了高效稳定的服务,广泛应用于各种规模的企业和网站。这个"apache服务器安装包集合"包含了Apache服务器运行所需的几个关键组件,包括apr、apr-util、...
Apache服务器支持JSP解析主要涉及以下几个关键步骤和技术: 1. **Apache服务器的安装与配置**: Apache HTTP Server是世界上最流行的Web服务器软件之一,用于发布静态网页和动态内容。首先,你需要安装Apache...
Apache服务器是广泛使用的Web服务器软件之一,其主要功能是处理用户通过浏览器发送的HTTP请求,并将请求的Web文档通过HTTP协议发送回客户端浏览器。Web服务器支持超文本传输协议(HTTP),是互联网上最热门的服务之...
Apache作为最流行的Web服务器软件之一,自然需要进行细致的调优。生产环境中的Apache服务在部署前需要从安全和性能两个角度进行全面的优化调试,以确保其能够高效、稳定地提供服务。 从安全角度来说,隐藏***e...
Apache服务器2.4 Windows 64位版是适用于64位Windows操作系统的最新官方版本的HTTP服务器软件。这个版本是基于.NET 2015编译优化的,旨在提供更高效的服务和更好的性能。在安装过程中,用户需要注意的是,由于Apache...
Apache Tomcat 6.0 是一个广泛使用的开源软件,它是一个符合Java Servlet和JavaServer Pages (JSP) 规范的应用服务器,主要用来部署和运行Java Web应用程序。这个版本是Tomcat系列的6.0版,它在当时的发布中提供了...
Apache服务器是全球应用最广泛的网页服务器软件,以其开源、跨平台和安全性著称。它能够运行在各种操作系统上,包括但不限于Unix、Linux和Windows。Apache的设计理念是模块化,允许用户根据需求添加或移除功能,例如...
3. **Apache服务器安装**:详细步骤,包括下载、安装、配置Apache服务器软件,以及启动和停止服务的方法。 4. **网络配置**:如何设置虚拟机的网络模式,例如NAT、桥接或主机-only,以便从外部访问Apache服务器。 ...
Apache WebSphere服务器是业界广泛采用的一种解决方案,它能够提供强大的处理能力和灵活的扩展性。本文将详细介绍如何在Linux环境下部署Apache Web服务器,并与IBM WebSphere Application Server (WAS)集成,实现高...
Apache 是一个广泛使用的 Web 服务器软件,因其稳定性、安全性以及丰富的功能而受到欢迎。对于运行在 Linux 操作系统上的 Apache 服务器来说,正确的配置至关重要。本文将详细介绍 Apache Linux 服务器的基本配置...
Apache服务器是世界上最流行的Web服务器软件之一,被广泛用于托管网站和服务。它开源、免费且高度可定制,使得它成为企业和个人开发者的首选。本篇主要介绍Apache服务器的配置过程及其核心概念。 首先,Apache...