`

apache_内存优化_转转转

    博客分类:
  • php
阅读更多
Apache 是运行在Linux 操作系统上的头号Web 服务器。很多小地方都可以用来调整Apache 的性能,并降低它对系统资源的影响。其中一个就是调整内存使用率,当然达到这一目的可能还是需要花点功夫的。
例如,通过ps 来确定httpd 线程的内存使用率 ,可以输入下面的命令:
# ps -U apache -u apache u

USERPID %CPU %MEMVSZRSS TTYSTAT START TIME COMMAND
apache130670.05.3 149704 54504 ?SOct071:53 /usr/sbin/httpd -f /etc/httpd/conf/httpd.conf -DAPACHE2
...

上面这段输出显示了单个httpd 进程使用了50 MBRSS (驻留集大小)内存(或者非交换物理内存),以及149 MBVSZ (虚拟)内存。这当然在很大程度上取决于你在Apache 里加载和运行的模块数量。这决不是一个固定的数字。由于这个数字里还包含了共享库包,所以不是100 %的准确。我们可以认为RSS 数字的一半是httpd 线程真正使用的内存数,这可能还有点保守,但是离我们的目的已经非常接近了。

在本文里,我们假设每个httpd 进程都在使用了27 MB 内存。然后,你需要确定可以让httpd 真正使用的内存数。根据运行在机器上的其他进程,你可能希望要求50 %的物理内存都供Apache 使用。在一个装有1GB 内存的系统上,就有512MB 的内存可以被划分为多个27MB 的内存,也就是大约19 个并发的httpd 内存。有些人坚持认为每个httpd 线程 真正 使用大约5MB 的内存,所以从理论上讲你可以把512MB 的内存划分出102 个并发进程供Apache 使用(要记住的是,除非你的网站需要极其巨大的流量,否则这种情况是非常罕见的)。  
在默认状态下,Apache 会分配最大256 个并发客户端连接,或者256 个进程(每一个都对应一个请求)。按照这种设置,一个流量巨大的网站会在顷刻间崩溃(即使你假设每个进程占用5MB 内存,那也需要1.3GB 的内存来满足请求的数量) 。如果不采取其它措施,系统会通过硬盘来尝试使用交换空间以处理它无法在物理内存中完成的任务。

其他可以调整的项目 包括KeepAliveKeepAliveTimeoutMaxKeepAliveRequests 等设置。可以放在httpd.conf 文件里的推荐设置有:

ServerLimit 128MaxClients 128KeepAlive OnKeepAliveTimeout 2MaxKeepAliveRequests 100

通过将KeepAliveTimeout15 秒减到2 秒,可以增加MaxClients 命令;19 太小,而128 要好得多。通过减少进程存活的秒数,你可以在相同的时间内允许更多的连接。

当然,如果没有真正的测试在背后支持,数字就是毫无意义的,这就是ab 的作用之所在 。使用abApache 配置文件(MaxClients 等于 256ServerLimit 等于256KeepAliveTimeout 等于15 )进行调整,使其能够满足1000 个请求(100 个连续请求并发产生)的调整方法如下。(在执行测试的时候要确保服务器上有一个终端打开以观察系统的负载。)
$ ab -n 1000 -c 100 -k http://yoursite.com/index.php

现在把上面的服务器设置改为更加保守的设置,重新启动Apache ,试着再次测试(总是从远程计算机上进行,而不是本机)。
在这里的测试中,不同的设置导致执行所消耗的时间产生了一倍的差距(分别为27.8s16.8s ),但是负载的平均值为0.03 0.30 。这可能会使得你的网站变得稍慢,但是会确保它不会在高负载的情况下崩溃。还要记住的是,你将需要进行多次测试,以便取得一个平均值。

使用ab 是测试调整Apache 配置的一个极佳方法,应该在你每次做出影响性能的更改时使用它
分享到:
评论

相关推荐

    apache_2.2.4-win32-x86-no_ssl

    - **性能优化**:2.2.x系列引入了各种性能提升,如更好的内存管理和连接管理策略。 由于不包含SSL支持,如果你需要在生产环境中部署HTTPS服务,你需要额外安装并配置SSL模块(mod_ssl),并获取有效的SSL证书。这...

    apache_pdfbox_1.8.16.rar

    在使用PDFBox时,需要注意内存管理和性能优化,因为处理大型PDF文档可能会消耗大量资源。此外,及时更新到最新版本可以获取最新的功能和安全修复。 7. **学习资源** 学习PDFBox可以通过官方文档、在线教程、Stack...

    Apache_poi的api

    - 处理大型Excel文件时,可以使用SXSSF,它基于内存优化的流式模型,减少内存占用。 - 对于只读操作,`SXSSFWorkbook.SXSSFSheet.enableAutoFilter(int threshold)`可以设置自动筛选的行数阈值,提高性能。 通过...

    Apache_2.4.23-x64-openssl-1.0.2h.zip

    2. **性能优化**:此版本引入了多项性能提升措施,例如更高效的事件模型,使得服务器能更好地处理高并发请求。 3. **更好的资源管理**:改进了线程管理和内存分配策略,降低了资源消耗,提高了服务器的响应速度。 4....

    kostas_tzumas_apache_flink_presentation.pdf

    - **优化的执行引擎**:内置了多种优化技术,如内存管理和调度策略,以提高处理效率。 #### 七、总结 Flink 作为下一代数据处理引擎,在 Hadoop 生态系统中扮演着重要的角色。它不仅提供了一种统一的编程模型来...

    xerces-c-src1_6_0.tar.gz_ xerces_XML解析_apache_xerces_xml parser

    Xerces-C++ 1.6.0版本是我们关注的焦点,这个版本包含了对XML解析的基本功能以及一些特定的优化和改进。 Xerces-C++解析器的工作流程主要包括以下几个步骤:首先,它读取XML文档并进行词法分析,识别出XML文档的...

    Apache_2.4.4

    8. **性能优化**:Apache 2.4.4 版本在内存管理和请求处理方面进行了优化,降低了服务器负载,提升了响应时间。 9. **模块支持**:Apache 2.4.4 对第三方模块的支持更好,许多流行的模块都进行了更新,以兼容这个...

    apache2_参考_文档.zip

    5. **安全与性能**:这部分会讨论如何设置SSL/TLS以实现HTTPS,以及优化服务器性能的策略,如调整内存分配、缓存机制等。 6. **日志与错误处理**:说明如何配置和解读Apache的日志文件,以及如何解决常见的错误和...

    apache-xml-xalan.jar.zip

    6. 处理结果:转换完成后,结果可能在内存中(如`java.io.OutputStream`),或者写入到文件或网络输出。 标签"jar"表明这个压缩包包含的是一个Java的归档文件。在Java开发中,JAR文件用于封装代码库,方便运行和...

    apache-tomcat-7.0.55-windows-x86_apache-tomcat_

    10. **性能优化**:可以通过调整内存分配、设置线程池大小、启用NIO(非阻塞I/O)等方式优化Tomcat的性能。 总之,Apache Tomcat 7.0.55是开发者部署Java Web应用的理想选择,它的稳定性和易用性使其成为许多企业的...

    apache+server源码分析+源码+内存池内幕

    在Apache内存池内幕分析文档中,你可能会了解到以下关键点: 1. **内存池的概念**:内存池是一种预先分配一大块内存,然后从中按需分配小块内存的策略。它避免了频繁的小内存分配和释放带来的开销。 2. **内存池的...

    Apache Pig的性能优化.pdf

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

    lnmp_base_centos8_php8_apache2.4.7z

    - **apr-iconv-1.2.2.tar.gz**、**apr-1.7.0.tar.gz** 和 **apr-util-1.6.1.tar.gz**:这些是Apache Portable Runtime (APR) 相关的库,APR是Apache的基础库,提供了操作系统接口,包括I/O、线程管理、内存分配等,...

    Apache POI for Android

    开发者可能需要使用特定的版本或者第三方库(如 Apache POI Android Port 或 XLSX4J)来避免内存泄漏和提高性能。 3. **Excel文件读写** - **读取Excel**:使用Apache POI,开发者可以打开Excel文件,访问工作簿、...

    实战Nginx取代Apache的高性能Web服务器_文字版

    在很多场景下,Nginx被用作替代Apache服务器的选择,尤其是在高流量网站和需要负载均衡的环境中。本实战指南旨在探讨如何通过Nginx实现高性能的Web服务,以提升网站的响应速度和稳定性。 一、Nginx与Apache的性能...

    Apache pig的性能优化

    8. 调整执行器和磁盘的配置:根据集群的资源情况,适当调整执行器的数量、内存大小及磁盘I/O配置,以获得更好的性能。 总结以上知识点,Apache Pig提供了一种有效的方式来处理和分析大数据,它基于Hadoop并使用类...

    org.apache.poi.hssf.converter,office转html所需包

    7. **性能和内存管理**:由于Apache POI需要在内存中加载整个文档,处理大型文件时需要注意内存优化。可以使用流式处理或分块读取的方式来减少内存消耗。 8. **错误处理和兼容性**:在转换过程中可能会遇到格式不...

    Apache2.2中文手册

    Apache2.2是其在2006年发布的一个稳定版本,提供了许多增强的功能和优化,为网站管理员提供了更多的控制和灵活性。本手册主要涵盖了Apache2.2的配置、管理和安全等方面的知识。 一、配置Apache2.2 Apache的配置主要...

    apache2.0免安装版

    Prefork模型适用于内存有限的环境,而Worker模型利用了多线程和异步I/O来优化高并发场景。 3. **虚拟主机**:Apache 2.0支持在同一台服务器上托管多个网站,每个网站可以拥有独立的域名、文档根目录和配置,这对于...

    Apache 2.4帮助文档

    3. 内存管理:优化内存分配策略,减少内存碎片,提升整体性能。 四、模块介绍 1. Mod_rewrite:强大的URL重写工具,用于实现动态URL到静态URL的转换,提升SEO效果。 2. Mod_deflate:对HTTP响应内容进行压缩,减少...

Global site tag (gtag.js) - Google Analytics