LAMP架构调优(七)——Apache Prefork模式调优

简介: 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
1
来查看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
————————————————

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

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

目录
相关文章
|
8月前
|
存储 消息中间件 Kafka
Confluent 首席架构师万字剖析 Apache Fluss(一):核心概念
Apache Fluss是由阿里巴巴与Ververica合作开发的Flink表存储引擎,旨在提供低延迟、高效率的实时数据存储与变更日志支持。其采用TabletServer与CoordinatorServer架构,结合RocksDB和列式存储,实现主键表与日志表的统一管理,并通过客户端抽象整合湖仓历史数据,弥补Paimon在实时场景下的性能短板。
1097 23
Confluent 首席架构师万字剖析 Apache Fluss(一):核心概念
|
存储 Cloud Native 数据处理
从嵌入式状态管理到云原生架构:Apache Flink 的演进与下一代增量计算范式
本文整理自阿里云资深技术专家、Apache Flink PMC 成员梅源在 Flink Forward Asia 新加坡 2025上的分享,深入解析 Flink 状态管理系统的发展历程,从核心设计到 Flink 2.0 存算分离架构,并展望未来基于流批一体的通用增量计算方向。
659 0
从嵌入式状态管理到云原生架构:Apache Flink 的演进与下一代增量计算范式
|
8月前
|
存储 消息中间件 Kafka
Confluent 首席架构师万字剖析 Apache Fluss(三):湖流一体
原文:https://jack-vanlightly.com/blog/2025/9/2/understanding-apache-fluss 作者:Jack Vanlightly 翻译:Wayne Wang@腾讯 译注:Jack Vanlightly 是一位专注于数据系统底层架构的知名技术博主,他的文章以篇幅长、细节丰富而闻名。目前 Jack 就职于 Confluent,担任首席技术架构师,因此这篇 Fluss 深度分析文章,具备一定的客观参考意义。译文拆成了三篇文章,本文是第二篇。
885 25
Confluent 首席架构师万字剖析 Apache Fluss(三):湖流一体
|
8月前
|
存储 消息中间件 Kafka
Confluent 首席架构师万字剖析 Apache Fluss(二):核心架构
原文:https://jack-vanlightly.com/blog/2025/9/2/understanding-apache-fluss 作者:Jack Vanlightly 翻译:Wayne Wang@腾讯 译注:Jack Vanlightly 是一位专注于数据系统底层架构的知名技术博主,他的文章以篇幅长、细节丰富而闻名。目前 Jack 就职于 Confluent,担任首席技术架构师,因此这篇 Fluss 深度分析文章,具备一定的客观参考意义。译文拆成了三篇文章,本文是第二篇。
915 20
|
消息中间件 监控 大数据
优化Apache Kafka性能:最佳实践与调优策略
【10月更文挑战第24天】作为一名已经对Apache Kafka有所了解并有实际使用经验的开发者,我深知在大数据处理和实时数据流传输中,Kafka的重要性不言而喻。然而,在面对日益增长的数据量和业务需求时,如何保证系统的高性能和稳定性成为了摆在我们面前的一个挑战。本文将从我的个人视角出发,分享一些关于如何通过合理的配置和调优来提高Kafka性能的经验和建议。
664 4
|
SQL 分布式数据库 Apache
网易游戏 x Apache Doris:湖仓一体架构演进之路
网易游戏 Apache Doris 集群超 20 个 ,总节点数百个,已对接内部 200+ 项目,日均查询量超过 1500 万,总存储数据量 PB 级别。
1210 3
网易游戏 x Apache Doris:湖仓一体架构演进之路
|
11月前
|
存储 缓存 Apache
Apache Iceberg数据湖高级特性及性能调优
性能调优涵盖索引优化、排序策略与元数据管理。通过布隆过滤器、位图索引等提升查询效率,结合文件内/间排序优化I/O与压缩,辅以Z-Order实现多维数据聚集。同时,合理配置元数据缓存与清单合并,加速查询规划。适用于点查、全表扫描及高并发写入场景,显著提升系统性能与资源利用率。
1061 0
|
存储 SQL Apache
Apache Doris 开源最顶级基于MPP架构的高性能实时分析数据库
Apache Doris 是一个基于 MPP 架构的高性能实时分析数据库,以其极高的速度和易用性著称。它支持高并发点查询和复杂分析场景,适用于报表分析、即席查询、数据仓库和数据湖查询加速等。最新发布的 2.0.2 版本在性能、稳定性和多租户支持方面有显著提升。社区活跃,已广泛应用于电商、广告、用户行为分析等领域。
Apache Doris 开源最顶级基于MPP架构的高性能实时分析数据库
|
存储 消息中间件 缓存
独特架构打造新一代消息队列Apache Pulsar
Apache Pulsar 是一个开源的分布式消息流平台,由雅虎开发并于 2016 年开源,2018 年成为 Apache 顶级项目。Pulsar 通过独特的架构提供多租户、持久化存储和批处理等高级功能,支持高吞吐量、低延迟的消息传递。其核心组件包括 Broker、Apache BookKeeper 和 Apache ZooKeeper,分别负责消息处理、持久化存储和集群管理。
730 1

推荐镜像

更多