`

apache性能优化

 
阅读更多

收藏自:http://sookk8.blog.51cto.com/455855/275759/

Apache的配置是针对原先较低的服务器来配置的,原先的配置显然已经不适合了,所以今天开始研究下Apache配置的问题。

1. 首先要了解Apache采用的MPM(Multi -Processing Modules,多道处理模块)
MPM是Apache的核心,它的作用是管理网络连接、调度请求。

Apache2.0中MPM分为3种(perfork、worker、event)。perfork从Apache1.3中继承下来的,它采用的是进程管 理方式,所以它可以提供更可靠的性能和更好的兼容性;worker是Apache2.0中新增加的方式,它采用了线程控制方法,可以比perfork更节 约系统开销、处理更多的数据量,但同时兼容性并不是很好,很多旧的程序无法工作在worker下;event仍处于试验阶段,它为每个任务分配不同的进程 池,目前不应该采用。
通过命令 httpd -l 可以获取目前Apache采用的是哪种MPM
本文仅针对perfork方式进行讨论

2. 了解perfork的工作方式

查看Apache2.0的配置文件httpd.conf,可以看到perfork的配置段,大致如下:

ServerLimit       256
StartServers       5
MinSpareServers   10
MaxSpareServers   15
MaxClients       256
MaxRequestsPerChild  4000

当Apache被启动时,Apache会自动创建StartServers个进程,并且尽力将空闲进程数保持在MinSpareServers和MaxSpareServers之间。
如果空闲进程小于MinSpareServers,Apache将会以大约每秒1个的速度新建进程。
如果空闲进程小于MaxSpareServers,Apache将会删除多余的空闲进程,释放服务器资源。
进程数的最大值由MaxClients控制,在Apache1.3中最大只能设置为256,但在Apache2.0中,可以通过在配置开头增加ServerLimit项目来突破256的限制,此时必须 MaxClients ≤ ServerLimit ≤ 20000
MaxRequestsPerChild用来控制每个进程在处理了多少次请求之后自动销毁,这个参数可以设置为0表示无限(即不销毁进程)。

3. 优化perfork
首先,对于一个负载相对较高的网站来说,256的进程限制是不够的,如果服务器已经达到256的极限,那么接下去的访问就需要排队,这也就是为什么某些服务器负载不高,但是访问却很慢的原因之一。所以首先应该了解服务器在繁忙时的进程数量。
通过命令ps -ef|grep httpd|wc -l可以了解到当前系统中Apache进程数,通过设置ServerLimit和MaxClients来达到为服务器软扩容的目的。

然后,在访问量高峰期,经常会出现的情况是突然之间发生非常多的并发连 接,然后突然之间减少了很多访问。如果Apache没有准备足够数量的预备进程,那访问只能等待Apache每秒1个的新增进程,随后又要将多余的进程删 除,那Apache只能一直忙于新建和销毁进程,大大地降低了访问速度。可以适当增加StartServers、MinSpareServers、 MaxSpareServers来使得Apache不需要一直忙于作无用功。

最后,强烈推荐MaxRequestsPerChild不要设置为0,设置为非0,可以保护Apache进程免遭内存泄漏的影响,因为你不知道运行在Apache上的应用程式在什么时候会出错导致内存泄漏。

设置完之后大致是这样的:

ServerLimit       1000
StartServers       30
MinSpareServers   30
MaxSpareServers   45
MaxClients       1000
MaxRequestsPerChild  4000
分享到:
评论

相关推荐

    25个Apache性能优化技巧推荐

    ### Apache性能优化技巧详解 #### 一、简介 在当今高度依赖互联网的世界中,Web服务器的性能至关重要。Apache作为全球最流行的Web服务器之一,其性能直接影响到网站的响应速度及用户体验。本文将详细介绍25个实用...

    25个Apache性能优化技巧.docx

    为了提高其性能,以下25个优化技巧将有助于最大化Apache的工作效率: ...以上就是25个Apache性能优化技巧,通过这些方法,可以显著提升Apache服务器的处理能力和响应速度,确保网站和服务的高效运行。

    2021-2022年收藏的精品资料软件工程师Web开发者必知的25个Apache性能优化技巧.docx

    以下是一些关键的Apache性能优化策略: 1. **移除不用的模块**:Apache在安装时会包含很多模块,但并非所有模块都会被使用。移除不必要的模块可以减少内存占用,提高服务器性能。 2. **使用mod_disk_cache而非mod_...

    Wins2003系统中Apache性能优化方法

    Apache性能优化是网站管理员和运维工程师在搭建高效、稳定的服务环境中不可或缺的技能之一。特别是在Windows Server 2003系统中,Apache的性能优化显得尤为重要。以下是对文档中提到的Apache性能优化方法的详细说明...

    Apache 集群性能优化 日志切分

    Apache集群性能优化是提高Web服务器处理能力的关键环节,特别是在高流量和大数据量的环境中。日志切分则是管理和分析服务器日志的一种有效方法,有助于监控系统状态、追踪问题以及进行性能调优。以下是对这两个主题...

    apache优化 网站优化

    Apache作为最流行的开源Web服务器,其性能优化对于任何网站来说都是至关重要的。本文将深入探讨Apache的优化策略,结合“apache优化 网站优化”的主题,以及标签中的“源码”和“工具”,我们将讨论如何通过调整...

    Apache

    apache性能优化技巧

    Apache2.2安全配置和性能优化

    ### Apache2.2安全配置和性能优化 #### 安全配置 **Apache禁止目录遍历:** 为了确保Apache服务器的安全性,防止恶意用户通过遍历目录来获取未授权的文件或者敏感信息,需要对Apache进行相应的配置。在Apache中,...

    Apache Pig的性能优化.pdf

    根据给定的文件信息,我们可以深入探讨Apache Pig的性能优化及其在大数据处理中的角色与优势。首先,让我们从Apache Pig的基本概念入手。 ### Apache Pig概述 Apache Pig是一种高生产力的数据流语言和执行框架,...

    Apache优化全面详细教程

    针对运行Apache的Linux主机,还可以从以下几个方面进行性能优化: 1. **清理服务器磁盘碎片**:定期使用工具清理磁盘碎片,提高读写效率。 2. **开启硬盘DMA**:确保硬盘驱动程序支持DMA(Direct Memory Access)...

    apache安全及优化设置

    Apache作为全球广泛使用的Web服务器之一,其安全性与性能优化对于确保网站稳定运行至关重要。本文将从几个方面详细介绍如何对Apache进行安全配置与性能优化。 #### 安全设置 1. **限制访问权限**: - 通过`....

    Tomcat性能优化

    【标题】:“Tomcat性能优化”意味着我们正在探讨如何提升Apache Tomcat服务器的运行效率,使其在处理Web应用时能够更快、更稳定地工作。Tomcat是一个开源的Java Servlet容器,广泛用于部署Java Web应用程序。 ...

    Apache pig的性能优化

    Apache Pig是一种高级数据流语言和执行框架,用于处理和分析大数据,其运行在Hadoop上。Pig提供了一种名为Pig ...性能优化是Pig使用中不可或缺的环节,涉及多个方面的考虑和调整,以确保大数据分析任务的高效执行。

    《Apache服务器配置与使用工作笔记》.(王江伟).[PDF].&ckook;

    #### 七、Apache性能优化 - **启用缓存**:使用mod_cache模块提高静态文件的加载速度。 - **压缩输出**:使用mod_deflate模块对响应内容进行实时压缩,减少网络传输时间。 - **连接优化**:调整`KeepAlive`、`...

    Web开发:Apache配置文件优化与性能提升方法

    内容概要:本文详细介绍了 Apache Web 服务器的配置优化和性能提升方法,包括配置文件的基础结构解析、基本配置指令的使用、性能优化的关键参数调整、负载均衡与缓存策略的应用、安全配置措施以及日志与错误处理的...

    apache 参数优化

    为了实现Apache服务器的最佳性能,我们需要对其进行参数优化。以下是一些关键的Apache配置参数及其优化建议: 1. **MaxClients**:这个参数定义了Apache可以同时处理的最大连接数。如果设置得过高,可能会耗尽系统...

Global site tag (gtag.js) - Google Analytics