LAMP架构调优(七)——Apache Prefork模式调优
今天继续给大家介绍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模式调优相关推荐
- 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 ...
- ansible角色部署lamp架构
使用ansible角色部署lamp架构 文章目录 使用ansible角色部署lamp架构 一.部署Apache 1.配置主机并创建角色 2.编写task任务 3.编写脚本 4.调用角色 二.部署mys ...
- LAMP架构(LAMP介绍,mysql/mariaDB介绍,Mysql安装)
一.LAMP架构介绍: Linux+ Apache(httpd)+ mysql + php 操作系统+外网服务软件 + 存储软件 + 脚本语言(由C开发) PHP网站 三个角色可以装在一台机器 ...
- 如何部署LAMP架构
LAMP平台的构成组件 一. linux操作系统LAMP架构的基础,Apache网站服务器:LAMP架构的前端,MySQL:LAPM架构后端,PHP/Per/Python网页编程语言:负责解析动态网页 ...
- LAMP 系统性能调优
1.LAMP 系统性能调优,第 1 部分: 理解 LAMP 架构 http://www.ibm.com/developerworks/cn/linux/l-tune-lamp-1/index.html ...
- 末学者笔记--apache编译安装及LAMP架构上线
apache介绍 一.Apache的三种工作模式 Apache一共有3种稳定的MPM模式(多进程处理模块),它们分别是prefork.worker.event.http-2.2版本的httpd默认的m ...
- Apache web服务器(LAMP架构)
apache介绍 1).世界上使用率最高的网站服务器,最高时可达70%:官方网站:apache.org 2).http 超文本协议 HTML 超文本标记语言 3).URL 统一资源定位符 http:/ ...
- Apache web服务器(LAMP架构)(week3_day4)--技术流ken
apache介绍 1).世界上使用率最高的网站服务器,最高时可达70%:官方网站:apache.org 2).http 超文本协议 HTML 超文本标记语言 3).URL 统一资源定位符 http:/ ...
- LAMP架构介绍以及Apache源码安装
一.LAMP架构介绍以及Apache源码安装 1.1.LAMP概述 LAMP是企业基础的应用架构 LAMP架构是目前成熟的企业网站应用模式之一,指的是协同工作的一整套系统和相关软件,能够提供动态Web ...
- LAMP 架构深度优化记录
1.Apache worker/prefwork模式说明 在linux中,我们可以用httpd-l 查看安装的模块是prefork模式还是worker模式 [root@LAMP ~]# /applic ...
最新文章
- RabbitMQ 3.6.x 安装和配置--Linux篇
- 新MGDN论坛重新恢复
- dev c++与VC assist的杂记
- 2022版全球及中国煤矿机械再制造行业“十四五”发展规划与投资建议报告
- org.springframework.web.HttpRequestMethodNotSupportedException: Request method 'PUT' not supported
- CNN结构:色彩空间建模-色彩空间分析
- 贝叶斯决策理论对CIFAR-10数据图像分类
- python输出返回值给文件_python-输入输出及文件
- 在工作中能学到的东西-2
- 一位腾讯离职创业 6 年 CEO 的忠告:不要等公司倒闭,才思考这 3 个问题
- 企业多园区统一灾备建设最佳实践
- 虽迟但到,手眼标定代码实现篇
- snagit 注册码
- 李庄 220kV变电站电气部分初步设计
- 盘点苹果电脑上好用的照片无损放大软件
- 欧空局:SNAP and the Sentinel Toolboxes下载网址
- 在Office 2013(64bit)下破解VBA工程密码
- iOS UINavigationController导航条背景透明
- 2019 初入IT十年(下)---- 视线所及只剩生活
- 跨境知道快讯:Anker出新招,一个月进账600万美金
热门文章
- 搞懂 Vision Transformer 原理和代码,看这篇技术综述就够了(五)
- 每日算法系列【LeetCode 943】最短超级串
- PyTorch中在反向传播前为什么要手动将梯度清零?
- 《统计学习方法》——决策树
- 大中小型项目管理的区别
- 电子工业出版社计算机图书出版分社致作者函
- ARM嵌入式系统网络驱动中的重要数据结构
- 2.4时序卷积网络TCN:因果膨胀卷积、残差连接和跳过连接
- 树莓派 wiringpi 读取引脚_树莓派DHT11温湿度传感器 Python应用实例
- python数据分析模型选择_python学习-数据分析2(分类型数据处理+SVM建模)