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

目录
相关文章
|
2月前
|
消息中间件 监控 大数据
优化Apache Kafka性能:最佳实践与调优策略
【10月更文挑战第24天】作为一名已经对Apache Kafka有所了解并有实际使用经验的开发者,我深知在大数据处理和实时数据流传输中,Kafka的重要性不言而喻。然而,在面对日益增长的数据量和业务需求时,如何保证系统的高性能和稳定性成为了摆在我们面前的一个挑战。本文将从我的个人视角出发,分享一些关于如何通过合理的配置和调优来提高Kafka性能的经验和建议。
100 4
|
23天前
|
NoSQL 关系型数据库 MySQL
《docker高级篇(大厂进阶):4.Docker网络》包括:是什么、常用基本命令、能干嘛、网络模式、docker平台架构图解
《docker高级篇(大厂进阶):4.Docker网络》包括:是什么、常用基本命令、能干嘛、网络模式、docker平台架构图解
146 56
《docker高级篇(大厂进阶):4.Docker网络》包括:是什么、常用基本命令、能干嘛、网络模式、docker平台架构图解
|
3月前
|
缓存 监控 API
探索微服务架构中的API网关模式
【10月更文挑战第5天】随着微服务架构的兴起,企业纷纷采用这一模式构建复杂应用。在这种架构下,应用被拆分成若干小型、独立的服务,每个服务围绕特定业务功能构建并通过HTTP协议协作。随着服务数量增加,统一管理这些服务间的交互变得至关重要。API网关作为微服务架构的关键组件,承担起路由请求、聚合数据、处理认证与授权等功能。本文通过一个在线零售平台的具体案例,探讨API网关的优势及其实现细节,展示其在简化客户端集成、提升安全性和性能方面的关键作用。
87 2
|
19天前
|
存储 消息中间件 缓存
独特架构打造新一代消息队列Apache Pulsar
Apache Pulsar 是一个开源的分布式消息流平台,由雅虎开发并于 2016 年开源,2018 年成为 Apache 顶级项目。Pulsar 通过独特的架构提供多租户、持久化存储和批处理等高级功能,支持高吞吐量、低延迟的消息传递。其核心组件包括 Broker、Apache BookKeeper 和 Apache ZooKeeper,分别负责消息处理、持久化存储和集群管理。
49 1
|
2月前
|
存储 SQL Apache
Apache Doris 开源最顶级基于MPP架构的高性能实时分析数据库
Apache Doris 是一个基于 MPP 架构的高性能实时分析数据库,以其极高的速度和易用性著称。它支持高并发点查询和复杂分析场景,适用于报表分析、即席查询、数据仓库和数据湖查询加速等。最新发布的 2.0.2 版本在性能、稳定性和多租户支持方面有显著提升。社区活跃,已广泛应用于电商、广告、用户行为分析等领域。
Apache Doris 开源最顶级基于MPP架构的高性能实时分析数据库
|
2月前
|
缓存 负载均衡 JavaScript
探索微服务架构下的API网关模式
【10月更文挑战第37天】在微服务架构的海洋中,API网关犹如一座灯塔,指引着服务的航向。它不仅是客户端请求的集散地,更是后端微服务的守门人。本文将深入探讨API网关的设计哲学、核心功能以及它在微服务生态中扮演的角色,同时通过实际代码示例,揭示如何实现一个高效、可靠的API网关。
|
2月前
|
缓存 监控 API
探索微服务架构中的API网关模式
随着微服务架构的兴起,API网关成为管理和服务间交互的关键组件。本文通过在线零售公司的案例,探讨了API网关在路由管理、认证授权、限流缓存、日志监控和协议转换等方面的优势,并详细介绍了使用Kong实现API网关的具体步骤。
54 3
|
2月前
|
存储 缓存 监控
探索微服务架构中的API网关模式
探索微服务架构中的API网关模式
57 2
|
3月前
|
SQL 存储 分布式计算
大数据-157 Apache Kylin 背景 历程 特点 场景 架构 组件 详解
大数据-157 Apache Kylin 背景 历程 特点 场景 架构 组件 详解
51 9
|
3月前
|
分布式计算 大数据 分布式数据库
大数据-158 Apache Kylin 安装配置详解 集群模式启动(一)
大数据-158 Apache Kylin 安装配置详解 集群模式启动(一)
64 5

推荐镜像

更多
下一篇
开通oss服务