LAMP架构调优(八)——Apache Worker模式调优

简介: LAMP架构调优(八)——Apache Worker模式调优

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

一、Apache Worker模式详解
与Apache的Prefork模式相比,Worker模式采用了多进程和多线程的混合模式,与Prefork模式类似,Worker模式也会先预派生一些子进程,然后每个子进程创建一些子线程。来自客户端的请求会被分配给某个线程进行处理。由于采用线程对客户端的请求进行处理,因此Worker模式相比于Prefork模式会占用更少的内存空间,也因此Worker模式会更适应高并发情况下对客户端请求的处理。但是,Apache Worker模式的弊端在于,如果一个线程出现问题,会连累该线程所处进程下的所有线程崩溃,因此需要考虑线程安全。

二、Apache Workrt模式查看
打开Apache的主配置文件,如果看到LoadModule中,打开了worker模式,则说明当前Apache采用的工作模式是Worker,如下所示:

执行命令:

/usr/local/httpd/bin/httpd -M | grep worker
1
可以进一步检查当前Apache是否工作于Worker模式下,如下所示:

与Apache的Prefork模式类似,如果向对Apache的Worker模式进行优化,在主配置文件中,除了需要进行上述配置,还需要打开对conf/extra/目录下httpd-mpm.conf文件的包含,并在该文件中进行配置。

三、Apache Worker性能优化
打开conf/extra/目录下httpd-default.conf文件,与Worker工作模式相关的配置如下:

Worker优化中各参数及其作用是:
ServerLimit:该参数表示服务器允许的最大进程数。
StartServers:该参数表示Apache服务在启动后,生成的子进程数。Apache服务在启动时,会以第一秒1个进程,第二秒2个进程,第三秒4个进程……的指数形势递增,直至达到默认开启的进程数,但是,最大每秒新增32个。
MaxRequestWorkers:该参数表示Apache服务所能够支持的最大并发量,该参数的值为系统最大进程数与每个进程最大线程数的乘积。
MinSpareThreads:该参数表示最小的空闲进程数,所谓空闲进程是指没有链接的进程,该值得适当设置,可以使得有突发流量时,系统可以有一定的缓冲时间,不至于因为新建进程的时间而导致无法响应客户端的请求,但是该值设置的太大又会使得系统资源造成不必要的消耗。当系统中的空闲进程小于该数值时,Apache服务会创建新的子进程。
MaxSpareThreads:最大的空闲进程数,该值得设置可以避免系统资源的过渡消耗。当系统中的空闲进程大于该数值时,Apache服务会杀死多余的子进程。
ThreadLimit:每个子进程所支持的线程数上限。
ThreadsPerChild:每个子进程包含的固定的线程数,缺省值为64.
MaxRequestsPerChild:每个子进程可以支持的请求总数,在Worker模式中,该值通常设置为0,表示每个子进程可以支持的请求总数不受限制。

四、Apache Worker配置参考
尽管我们知道了上述参数的作用,但是在具体生产环境中,对Apache参数的配置还是需要根据业务场景来进行选择。下面,我仅给出一个参考的取值:
StartServers:5
MaxRequestWorkers:9600
ServerLimit:64
MinSpareThreads:25
MaxSpareThreads:500
ThreadLimit:200
ThreadsPerChild:150
MaxRequestsPerChild:0
如果对自身生产环境配置不确定的情况下,可以参考该取值来进行配置。
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200
————————————————

                        版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/weixin_40228200/article/details/122657066

目录
相关文章
|
16天前
|
存储 人工智能 架构师
数据库架构模式:分片
本文介绍了数据库分片的概念,以及各自的使用场景,分片可提升可扩展性、性能和高可用性。
|
18天前
|
Linux Apache
CentOS 7 源码安装LAMP环境源 和apache监听别的端口
CentOS 7 源码安装LAMP环境源 和apache监听别的端口
13 0
|
20天前
|
前端开发 安全 JavaScript
计算机软件从 CS 模式到 BS 架构迁移背后的动因
计算机软件从 CS 模式到 BS 架构迁移背后的动因
25 0
|
28天前
|
存储 监控 安全
金石推荐 | 【分布式技术专题】「单点登录技术架构」一文带领你好好认识以下Saml协议的运作机制和流程模式
金石推荐 | 【分布式技术专题】「单点登录技术架构」一文带领你好好认识以下Saml协议的运作机制和流程模式
64 1
|
1月前
|
运维 Linux Apache
LAMP架构调优(三)——模块的安装与调用
LAMP架构调优(三)——模块的安装与调用
9 0
|
1月前
|
运维 Linux Apache
LAMP架构调优(十)——Apache禁止指定目录PHP解析与错误页面优化
LAMP架构调优(十)——Apache禁止指定目录PHP解析与错误页面优化
199 2
|
1月前
|
运维 Linux Apache
LAMP架构调优(九)——Apache Rewrite功能实战
LAMP架构调优(九)——Apache Rewrite功能实战
13 1
|
7天前
|
敏捷开发 监控 数据管理
构建高效微服务架构的五大关键策略
【4月更文挑战第20天】在当今软件开发领域,微服务架构已经成为一种流行的设计模式,它允许开发团队以灵活、可扩展的方式构建应用程序。本文将探讨构建高效微服务架构的五大关键策略,包括服务划分、通信机制、数据管理、安全性考虑以及监控与日志。这些策略对于确保系统的可靠性、可维护性和性能至关重要。
|
7天前
|
消息中间件 监控 持续交付
构建高效微服务架构:后端开发的进阶之路
【4月更文挑战第20天】 随着现代软件开发的复杂性日益增加,传统的单体应用已难以满足快速迭代和灵活部署的需求。微服务架构作为一种新兴的分布式系统设计方式,以其独立部署、易于扩展和维护的特点,成为解决这一问题的关键。本文将深入探讨微服务的核心概念、设计原则以及在后端开发实践中如何构建一个高效的微服务架构。我们将从服务划分、通信机制、数据一致性、服务发现与注册等方面入手,提供一系列实用的策略和建议,帮助开发者优化后端系统的性能和可维护性。
|
1天前
|
监控 测试技术 持续交付
探索现代微服务架构的最佳实践
【4月更文挑战第25天】 随着软件开发领域不断演进,微服务架构已成为设计灵活、可扩展且高度可维护系统的首选方案。本文将深入探讨构建和部署微服务时的关键最佳实践,涵盖从服务划分原则到持续集成/持续部署(CI/CD)的流程,再到监控与日志记录的策略。我们的目标是为开发者提供一套实用的指南,帮助他们在构建未来的应用程序时做出明智的架构选择,并确保这些系统能够快速响应市场和技术的变化。

热门文章

最新文章

推荐镜像

更多