今天继续给大家介绍Linux运维的相关知识,本文主要内容是Apache的Prefork模式调优实战。

一、Apache Prefork模式详解

Apache服务的运行,有三种模式,Prefork是一种常见的方式,在默认情况下,源码安装后的Apache服务就是工作于Prefork模式下。
Prefork模式实现了一个预派生进程的工作方式,在Apache启动时,就预先创建一些进程,然后等待客户端链接,这样可以减少进程的创建和销毁带来的系统开销。Prefork模式下,每个进程仅有一个子线程,在同一时间内,一个进程只能处理一个请求。因此,Prefork模式相对成熟稳定,可以兼容新老模块,也不需要担心线程安全问题。但是,也正由此导致了Prefork工作模式会占用更多的系统资源,在高并发场景下处理能力较弱。

二、Apache Prefork查看

可以通过执行命令:

/usr/local/httpd/bin/httpd -M | grep prefork

来查看Apache所处的工作模式。在使用Prefork模式下,Apache服务的主配置文件中Prefork模块一定会被打开,如下所示:

为了对Prefork工作模式进行优化,我们必须找到如下红线部分的内容:

在conf/extra目录下,存在一个httpd-mpm.conf文件,在该文件中会存在对Apache三种模式的详细配置,因此,我们要对Apache的Prefork模式进行调优,就必须找到该处,删除#,使得在Apache的主配置文件中,引用该httpd-mpm.conf配置文件。

三、Apache Prefork性能优化

打开httpd-default.conf配置文件,可以看到Prefork模式的配置模块,如下所示:

Prefork模式的配置有几个参数,参数及作用如下:
ServerLimit:最大的进程数
StartServers:启动Apache服务时,默认开启的进程数,Apache主进程在启动后,会以第一秒1个进程,第二秒2个进程,第三秒4个进程……的指数形势递增,直至达到默认开启的进程数,但是,最大每秒新增32个。
MinSpareServer:最小的空闲进程数,所谓空闲进程是指没有链接的进程,该值得适当设置,可以使得有突发流量时,系统可以有一定的缓冲时间,不至于因为新建进程的时间而导致无法响应客户端的请求,但是该值设置的太大又会使得系统资源造成不必要的消耗。
MaxSpareServer:最大的空闲进程数,该值得设置可以避免系统资源的过渡消耗。
MaxRequestWorkers:最大的并发进程数,当客户端的请求达到该数值后,有新的请求时,会加入到缓存队列,而不会立即处理。该值通常和ServerLimit相等。
MaxRequestsPerChild:一个进程所能够进行链接的最大数,当一个进程处理的请求总数超出该值时,该进程的父进程会杀死该进程。当该值为0时,表示一个进程能够进行链接数量不受限制。
我们修改上述值得设置如下所示:

并重启Apache服务。查看Apache服务的进程如下所示:

可以看出,Apache在启动后,一共生成了8个子进程,我们的配置生效。

四、Apache Prefork参数配置

尽管我们知道了上述参数的作用,但是在具体生产环境中,对Apache参数的配置还是需要根据业务场景来进行选择。一般而言,一个进程需要消耗的内存为1.6M左右,因此,我们就可以通过这个数据来计算配置的最大链接数。假设系统有32G的内存,留给服务器系统消耗1G,其余的内存分配给Apache,则Apache可用的内存空闲大小为15G,15G/1.6M=960个,因此,可以将系统的最大链接数设置为960。其余参数可以根据实际情况进行设置。
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200

LAMP架构调优(七)——Apache Prefork模式调优相关推荐

  1. lamp架构的搭建(apache、mysql、php编译安装)

    lamp 1.lamp简介 2.web服务器工作流程 2.1CGI和FastCGI 2.2 httpd和php结合的方式 3.lamp平台的构建 3.1 安装httpd 3.2 安装mysql 3.3 ...

  2. ansible角色部署lamp架构

    使用ansible角色部署lamp架构 文章目录 使用ansible角色部署lamp架构 一.部署Apache 1.配置主机并创建角色 2.编写task任务 3.编写脚本 4.调用角色 二.部署mys ...

  3. LAMP架构(LAMP介绍,mysql/mariaDB介绍,Mysql安装)

    一.LAMP架构介绍: Linux+  Apache(httpd)+ mysql  +   php 操作系统+外网服务软件 + 存储软件 + 脚本语言(由C开发) PHP网站 三个角色可以装在一台机器 ...

  4. 如何部署LAMP架构

    LAMP平台的构成组件 一. linux操作系统LAMP架构的基础,Apache网站服务器:LAMP架构的前端,MySQL:LAPM架构后端,PHP/Per/Python网页编程语言:负责解析动态网页 ...

  5. LAMP 系统性能调优

    1.LAMP 系统性能调优,第 1 部分: 理解 LAMP 架构 http://www.ibm.com/developerworks/cn/linux/l-tune-lamp-1/index.html ...

  6. 末学者笔记--apache编译安装及LAMP架构上线

    apache介绍 一.Apache的三种工作模式 Apache一共有3种稳定的MPM模式(多进程处理模块),它们分别是prefork.worker.event.http-2.2版本的httpd默认的m ...

  7. Apache web服务器(LAMP架构)

    apache介绍 1).世界上使用率最高的网站服务器,最高时可达70%:官方网站:apache.org 2).http 超文本协议 HTML 超文本标记语言 3).URL 统一资源定位符 http:/ ...

  8. Apache web服务器(LAMP架构)(week3_day4)--技术流ken

    apache介绍 1).世界上使用率最高的网站服务器,最高时可达70%:官方网站:apache.org 2).http 超文本协议 HTML 超文本标记语言 3).URL 统一资源定位符 http:/ ...

  9. LAMP架构介绍以及Apache源码安装

    一.LAMP架构介绍以及Apache源码安装 1.1.LAMP概述 LAMP是企业基础的应用架构 LAMP架构是目前成熟的企业网站应用模式之一,指的是协同工作的一整套系统和相关软件,能够提供动态Web ...

  10. LAMP 架构深度优化记录

    1.Apache worker/prefwork模式说明 在linux中,我们可以用httpd-l 查看安装的模块是prefork模式还是worker模式 [root@LAMP ~]# /applic ...

最新文章

  1. RabbitMQ 3.6.x 安装和配置--Linux篇
  2. 新MGDN论坛重新恢复
  3. dev c++与VC assist的杂记
  4. 2022版全球及中国煤矿机械再制造行业“十四五”发展规划与投资建议报告
  5. org.springframework.web.HttpRequestMethodNotSupportedException: Request method 'PUT' not supported
  6. CNN结构:色彩空间建模-色彩空间分析
  7. 贝叶斯决策理论对CIFAR-10数据图像分类
  8. python输出返回值给文件_python-输入输出及文件
  9. 在工作中能学到的东西-2
  10. 一位腾讯离职创业 6 年 CEO 的忠告:不要等公司倒闭,才思考这 3 个问题
  11. 企业多园区统一灾备建设最佳实践
  12. 虽迟但到,手眼标定代码实现篇
  13. snagit 注册码
  14. 李庄 220kV变电站电气部分初步设计
  15. 盘点苹果电脑上好用的照片无损放大软件
  16. 欧空局:SNAP and the Sentinel Toolboxes下载网址
  17. 在Office 2013(64bit)下破解VBA工程密码
  18. iOS UINavigationController导航条背景透明
  19. 2019 初入IT十年(下)---- 视线所及只剩生活
  20. 跨境知道快讯:Anker出新招,一个月进账600万美金

热门文章

  1. 搞懂 Vision Transformer 原理和代码,看这篇技术综述就够了(五)
  2. 每日算法系列【LeetCode 943】最短超级串
  3. PyTorch中在反向传播前为什么要手动将梯度清零?
  4. 《统计学习方法》——决策树
  5. 大中小型项目管理的区别
  6. 电子工业出版社计算机图书出版分社致作者函
  7. ARM嵌入式系统网络驱动中的重要数据结构
  8. 2.4时序卷积网络TCN:因果膨胀卷积、残差连接和跳过连接
  9. 树莓派 wiringpi 读取引脚_树莓派DHT11温湿度传感器 Python应用实例
  10. python数据分析模型选择_python学习-数据分析2(分类型数据处理+SVM建模)