apache的prefork和worker模式详解

2023-10-09 23:33

本文主要是介绍apache的prefork和worker模式详解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

apache 的 prefork 和 worker 模式详解

 

什么是 prefork 模式


这个多路处理模块(MPM) 实现了一个非线程型的、预派生的web 服务器,

它的工作方式类似于Apache 1.3 。

它适合于没有线程安全库,

需要避免线程兼容性问题的系统。

它是要求将每个请求相互独立的情况下最好的MPM ,

这样若一个请求出现问题就不会影响到 其他请求。

这个MPM 具有很强的自我调节能力,只需要很少的配置指令调整。

最重要的是将MaxClients 设置为一个足够大的数值以处理潜在的请求高峰,

同时又不能太大,以致需要使用的内存超出物理内存的大小。

说的简单点就是用进程来处理http 请求,而不用线程来处理。

为什么要这样处理的原因是为了避免线程安全问题。

什么是 worker 模 式


此多路处理模块 (MPM) 使网络服务器支持混合的多线程多进程。

由于使用线程来处理请求,所以可以处理海量请求,

而系统资源的开销小于基于进程的 MPM 。

但是,它也使用了多进程,每个进程又有多个线程,

以获得基于进程的 MPM 的稳定性。

主要是启动多个进程,每个进程又可以启动好几个线程。
怎么样进程切换

怎么样切换

将当前的prefork 模式启动文件改名
cd /usr/local/apache/bin

mv httpd httpd.prefork
将worker 模式的启动文件改名
mv httpd.worker httpd

重新启动服务
/etc/init.d/httpd restart
即可换成worker 方式启动apache2

Prefork 参数设置


如果是源码安装的话此文件在/usr/local/apache/conf/extra/httpd-mpm.conf

<IfModule mpm_prefork_module>

    StartServers          5 // 启动时开启的进程数目

    MinSpareServers       5 // 保有的备用进程的最小数目

    MaxSpareServers      10 // 保有的备用进程的最大数目

    MaxClients          150 // 服务器允许启动的最大进程数

    MaxRequestsPerChild   0 // 一个服务进程允许的最大请求数

</IfModule>

Worker 参数设置


<IfModule mpm_worker_module>

    StartServers          2 // 服务器启动时的服务进程数目

    MaxClients          150 // 许同时连接的最大用户数目

    MinSpareThreads      25 // 保有的最小工作线程数目

    MaxSpareThreads      75 // 允许保有的最大工作线程数目

    ThreadsPerChild      25 // 每个服务进程中的工作线程常数

    MaxRequestsPerChild   0 // 服务进程中允许的最大请求数目

</IfModule>



Locations of visitors to this page

统计

这篇关于apache的prefork和worker模式详解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/176357

相关文章

Conda与Python venv虚拟环境的区别与使用方法详解

《Conda与Pythonvenv虚拟环境的区别与使用方法详解》随着Python社区的成长,虚拟环境的概念和技术也在不断发展,:本文主要介绍Conda与Pythonvenv虚拟环境的区别与使用... 目录前言一、Conda 与 python venv 的核心区别1. Conda 的特点2. Python v

Spring Boot中WebSocket常用使用方法详解

《SpringBoot中WebSocket常用使用方法详解》本文从WebSocket的基础概念出发,详细介绍了SpringBoot集成WebSocket的步骤,并重点讲解了常用的使用方法,包括简单消... 目录一、WebSocket基础概念1.1 什么是WebSocket1.2 WebSocket与HTTP

java中反射Reflection的4个作用详解

《java中反射Reflection的4个作用详解》反射Reflection是Java等编程语言中的一个重要特性,它允许程序在运行时进行自我检查和对内部成员(如字段、方法、类等)的操作,本文将详细介绍... 目录作用1、在运行时判断任意一个对象所属的类作用2、在运行时构造任意一个类的对象作用3、在运行时判断

MySQL 中的 CAST 函数详解及常见用法

《MySQL中的CAST函数详解及常见用法》CAST函数是MySQL中用于数据类型转换的重要函数,它允许你将一个值从一种数据类型转换为另一种数据类型,本文给大家介绍MySQL中的CAST... 目录mysql 中的 CAST 函数详解一、基本语法二、支持的数据类型三、常见用法示例1. 字符串转数字2. 数字

SpringBoot中SM2公钥加密、私钥解密的实现示例详解

《SpringBoot中SM2公钥加密、私钥解密的实现示例详解》本文介绍了如何在SpringBoot项目中实现SM2公钥加密和私钥解密的功能,通过使用Hutool库和BouncyCastle依赖,简化... 目录一、前言1、加密信息(示例)2、加密结果(示例)二、实现代码1、yml文件配置2、创建SM2工具

MyBatis-Plus 中 nested() 与 and() 方法详解(最佳实践场景)

《MyBatis-Plus中nested()与and()方法详解(最佳实践场景)》在MyBatis-Plus的条件构造器中,nested()和and()都是用于构建复杂查询条件的关键方法,但... 目录MyBATis-Plus 中nested()与and()方法详解一、核心区别对比二、方法详解1.and()

Spring IoC 容器的使用详解(最新整理)

《SpringIoC容器的使用详解(最新整理)》文章介绍了Spring框架中的应用分层思想与IoC容器原理,通过分层解耦业务逻辑、数据访问等模块,IoC容器利用@Component注解管理Bean... 目录1. 应用分层2. IoC 的介绍3. IoC 容器的使用3.1. bean 的存储3.2. 方法注

MySQL 删除数据详解(最新整理)

《MySQL删除数据详解(最新整理)》:本文主要介绍MySQL删除数据的相关知识,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录一、前言二、mysql 中的三种删除方式1.DELETE语句✅ 基本语法: 示例:2.TRUNCATE语句✅ 基本语

Python内置函数之classmethod函数使用详解

《Python内置函数之classmethod函数使用详解》:本文主要介绍Python内置函数之classmethod函数使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录1. 类方法定义与基本语法2. 类方法 vs 实例方法 vs 静态方法3. 核心特性与用法(1编程客

Python函数作用域示例详解

《Python函数作用域示例详解》本文介绍了Python中的LEGB作用域规则,详细解析了变量查找的四个层级,通过具体代码示例,展示了各层级的变量访问规则和特性,对python函数作用域相关知识感兴趣... 目录一、LEGB 规则二、作用域实例2.1 局部作用域(Local)2.2 闭包作用域(Enclos