在httpd 2.2版本中是不支持同时编译多个MPM模块的,只能编译要使用的那个,默认是prefork工作模型,另外还有worker和event模块可使用,只不过在2.2中event还在测试阶段,到2.4才正式使用,所以本文所讲是httpd 2.2中的worker和prefork模块

如何查看Apache当前工作模块:

1、查看静态编译的模块:httpd -l

2、查看静态及动态编译的模块:httpd -M

prefork和worker的区别:

prefork是非线程、多进程处理模块。

prefork会预先生成一些子进程,每个进程在同一个时间点只能处理一个请求,会根据并发需求生成更多进程来完成工作。消耗内存资源更大,但是更为高效稳定。

worker是线程化、多进程处理模块。

每个进程生成多个线程,每个线程响应一个请求,内存资源消耗小,效率没有prefork高,但是现在内存资源已经很充足,所以worker模块使用较少。

如何切换MPM模块:

1、httpd2.2版本修改MPM模块的方法:

(1)、首先使用httpd -l来查看当前模块是prefork,使用 ps aux 查看httpd进程也可以得知。

(2)、编辑/etc/sysconfig/httpd文件,取消以下一行的注释,修改为所需要MPM模块。

HTTPD=/usr/sbin/httpd.worker

(3)、重新启动httpd服务,使用ps aux命令查看当前进程,可以看到修改已经生效了。

2、httpd2.4版本修改MPM模块的方法

在编译安装httpd2.4时,构建MPM模块通常有两种选择,一种是把MPM编译成静态模块,还有一种是把MPM编译成动态模块。如果把MPM编译成了静态模块(编译安装时有指定--with-mpm=NAME),那么要改变MPM只能通过重新编译安装httpd修改。如果在编译安装httpd时把MPM编译成了动态模块(编译安装时指定--enable-mpms-shared选项),那么可以在/etc/httpd/httpd.conf配置文件中编辑LoadModule指令选择不同的MPM重新载入即可。在httpd2.4中MPM模块的配置文件为/etc/httpd/extra/httpd-mpm.conf。

三种模块参数说明:

httpd2.2中prefork和worker各参数说明如下:

如果prefork.c模块存在,则定义在标签内的参数有效

StartServers: 服务开启时默认启动的工作进程数,不包括主进程

MinSpareServers: 最少空闲进程数;

MaxSpareServers: 最大空闲进程数;

ServerLimit: 最大活动进程数;

MaxClients: 并发请求的最大数,一条进程最多能处理多少个请求

MaxRequestsPerClient: 每个子进程在生命周期内所能够服务的最多请求个数

如果worker.c模块存在,则定义在标签内的参数有效

StartServers: 服务器开启时,启动的子进程的个数

MaxClients: 并发请求的最大数;

MinSpareThreads:最小空闲线程数;

MaxSpareThreads:最大空闲线程数;

ThreadsPerChild:每个子进程可生成的线程数;

MaxRequestsPerChild:每个子进程在生命周期内所能够服务的最多请求个数,0表示不限定;

httpd2.4中event参数说明如下:

StartServers 默认进程数

MinSpareThreads 最小空闲线程数

MaxSpareThreads 最大空闲线程数

ThreadsPerChild 每个子进程可以生成的线程数

MaxRequestWorkers 最大线程数量

MaxConnectionsPerChild 子进程的最大连接数,当达到设置值以后,APACHE就会结束当前的子进程

linux apache 查看mpm 配置方式,Apache MPM模块prefork和worker的区别与配置相关推荐

  1. linux httpd 源码包下载,Apache httpd-2.4.33源码包编译安装教程

    实验环境:centos6.5 防火墙需要关闭 下载源码包 wget http://archive.apache.org/dist/apr/apr-util-1.5.2.tar.gz wget http ...

  2. linux nginx在哪个目录下,Linux下查看Nginx安装目录、版本号信息?

    Linux环境下,怎么确定Nginx是以那个config文件启动的? 输入命令行: ps  -ef | grep nginx 摁回车,将出现如下图片: master process 后面的就是 ngi ...

  3. linux安装版本信息,Linux下查看Nginx安装目录、版本号信息?

    Linux环境下,怎么确定Nginx是以那个config文件启动的? 输入命令行: ps  -ef | grep nginx 摁回车,将出现如下图片: master process 后面的就是 ngi ...

  4. pip国内常用源及配置方式

    pip国内常用源及配置方式 目录 pip国内常用源及配置方式 pip国内常用源 单次切换pip源配置 永久配置pip源 pip国内常用源 阿里云 http://mirrors.aliyun.com/p ...

  5. Linux系统查看磁盘类型

    Linux系统查看磁盘类型 方式1--/sys/block/ 方式2--lsblk 方式3--fdisk 方法4--smartctl 方式1–/sys/block/ 判断cat /sys/block/ ...

  6. Dubbo(RPC原理、Dubbo架构负载均衡配置方式)(3)

    1.什么是负载均衡 先来个官方的解释. 维基百科对负载均衡的定义:负载均衡改善了跨多个计算资源(例如计算机,计算机集群,网络链接,中央处理单元或磁盘驱动的的工作负载分布.负载平衡旨在优化资源使用,最大 ...

  7. Apache的三种MPM模式比较:prefork,worker,event

    就最新版本的Web服务器Apache(版本是Apache 2.4.10,发布于2014年7月21日)来说,一共有三种稳定的MPM(Multi-Processing Module,多进程处理模块)模式. ...

  8. Apache Prefork、Worker和Event三种MPM分析

    三种MPM介绍 Apache 2.X 支持插入式并行处理模块,称为多路处理模块(MPM).在编译apache时必须选择也只能选择一个MPM,对类UNIX系统,有几个不同的MPM可供选择,它们会影响到a ...

  9. php mpm,PHP使用Apache中的ab测试网站的压力性能及mpm介绍

    打开Apache安装的bin目录 shift+鼠标右键 复制粘贴以下代码->回车 ab -n 1000 -c 100 http://localhost/test.php 上例表示总共访问http ...

最新文章

  1. Android教程 -09 数据的持久化存储
  2. 还有:用VB创建Excel报表
  3. SQL Server 2017 正式发布
  4. EntityFramework之迁移操作(五)
  5. 初步设计了一下视频工具合集的界面
  6. vue .native 方法未定义_技术分享谈谈Vue的响应式原理
  7. 我为NET狂~群福利:逆天书库
  8. 计算机如何分屏操作步骤,windows怎么分屏|windows系统开启分屏显示功能方法
  9. for i in range()使用方法
  10. 阿里云云计算工程师(ACP)认证证书及考试须知
  11. python实现AES加密解密
  12. 扒皮 || 优衣库X KAWS凭什么会被疯抢??!!!
  13. Kubernetes的Startup, Liveness, Readiness深入探索
  14. The Fifty-eighth Of Word-Day
  15. npm --save 的含义
  16. Windows+python3.6+Anaconda安装shogun包
  17. 4|无线传感器网络与应用|无线传感器网络原理及方法-许毅版|考试知识点
  18. xml中xsd/xsi/xsl/xmlns的区别和联系
  19. 【问题记录】防止mimikatz获取到明文密码
  20. 2017年IDC行业市场现状及趋势

热门文章

  1. SVM原理详细图文教程来了!一行代码自动选择核函数,还有模型实用工具
  2. 有哪些「魔改」损失函数,曾经拯救了你的深度学习模型?
  3. 我敢打赌!你见过的所有程序员都是这样的!!!
  4. ubuntu 对apahce的php 服务器使用
  5. Django博客系统(登录)
  6. tap/tun接口是什么?
  7. idea 关于spring boot实现自动编译
  8. 假如计算机是中国人发明的,那代码应该这么写
  9. APS:大型多模态室内摄像机定位系统
  10. 关于socket的一些探究