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

目录
相关文章
|
3天前
|
关系型数据库 MySQL PHP
unbuntu搭建LAMP(Apache2+PHP+MySQL+phpmyadmin)
unbuntu搭建LAMP(Apache2+PHP+MySQL+phpmyadmin)
|
11天前
|
Linux Apache
CentOS 7 源码安装LAMP环境源 和apache监听别的端口
CentOS 7 源码安装LAMP环境源 和apache监听别的端口
26 0
|
11天前
|
运维 Linux Apache
LAMP架构调优(十)——Apache禁止指定目录PHP解析与错误页面优化
LAMP架构调优(十)——Apache禁止指定目录PHP解析与错误页面优化
200 2
|
11天前
|
运维 Linux Apache
LAMP架构调优(九)——Apache Rewrite功能实战
LAMP架构调优(九)——Apache Rewrite功能实战
16 1
|
3天前
|
消息中间件 Java Kafka
实时计算 Flink版操作报错之Apache Flink中的SplitFetcher线程在读取数据时遇到了未预期的情况,该怎么解决
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
2天前
|
消息中间件 关系型数据库 MySQL
Apache Flink CDC 3.1.0 发布公告
Apache Flink 社区很高兴地宣布发布 Flink CDC 3.1.0!
182 0
Apache Flink CDC 3.1.0 发布公告
|
3天前
|
Java 关系型数据库 数据库连接
实时计算 Flink版操作报错之遇到错误org.apache.flink.table.api.ValidationException: Could not find any factory for identifier 'jdbc',该如何解决
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
7天前
|
Oracle 关系型数据库 数据库
实时计算 Flink版操作报错合集之执行Flink job,报错“Could not execute SQL statement. Reason:org.apache.flink.table.api.ValidationException: One or more required options are missing”,该怎么办
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
67 0
|
7天前
|
消息中间件 关系型数据库 MySQL
实时计算 Flink版操作报错合集之遇到报错:Apache Kafka Connect错误如何解决
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
70 5
|
7天前
|
SQL 关系型数据库 MySQL
实时计算 Flink版操作报错合集之报错:org.apache.flink.table.api.validationexception如何解决
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
92 1

推荐镜像

更多