如何测试和调试Apache服务器

  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 MB的RSS(驻留集大小)内存(或者非交换物理内存),以及149 MB的VSZ(虚拟)内存。这当然在很大程度上取决于你在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的内存来满足请求的数量)。如果不采取其它措施,系统会通过硬盘来尝试使用交换空间以处理它无法在物理内存中完成的任务。

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

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

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

$ ab -n 1000 -c 100 -k http://yoursite.com/index.php
  现在把上面的服务器设置改为更加保守的设置,重新启动Apache,试着再次测试(总是从远程计算机上进行,而不是本机)。

  在这里的测试中,不同的设置导致执行所消耗的时间产生了一倍的差距(分别为27.8s和16.8s),但是负载的平均值为0.03和0.30。这可能会使得你的网站变得稍慢,但是会确保它不会在高负载的情况下崩溃。还要记住的是,你将需要进行多次测试,以便取得一个平均值。

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

时间: 2024-09-15 02:47:00

如何测试和调试Apache服务器的相关文章

使用Apache ab工具对Apache服务器进行简单的压力测试_Linux

1.安裝ab命令 sudo apt-get install apache2-utils 2.ab命令参数说明 Usage: ab [options] [http[s]://]hostname[:port]/path  Options are:      //总的请求数 -n requests Number of requests to perform //一次同时并发的请求数 总的请求数(n)=次数*一次并发数(c) -c concurrency Number of multiple reque

Windows 环境下的PHP5 与 Apache 服务器的配置

apache|php5|window|服务器 目前 PHP5 发布了第三个候选版本,估计正式版本不久就快释放了.安装过程应该不会有所变化,下面文章内容将讲述 Windows2000/XP/2003(不建议在 windows 98 下建立 PHP 环境) 下 PHP 环境的配置,服务器选择 Apache 2.0.49,数据库选择 MySQL 4.0.20 版本. 需要下载几个软件包: 1. PHP5 RC3 2. Apache 2.0.49 3. MySQL 4.0.20 下载软件包1. PHP5

Windows 环境下的 PHP5 与 Apache 服务器的配置

apache|php5|window|服务器 需要下载几个软件包: 1. PHP5 RC3 2. Apache 2.0.49 3. MySQL 4.0.20 下载软件包: 1. PHP5 RC3 PHP官方网站 的下载地址为: http://www.php.net/downloads.php ,找到如下图位置,下载方框中的两个软件包.其中 PHP 5.0.0RC3 zip package 就是 PHP5 软件包,而 Collection of PECL modules for PHP 5.0.0

Linux系统下Apache服务器设置与优化

Apache服务器的设置文件位于/usr/local/apache/conf/目录下,传统上使用三个配置文件httpd.conf,access.conf和srm.conf,来配置Apache服务器的行为. httpd.conf提供了最基本的服务器配置,是对守护程序httpd如何运行的技术描述:srm.conf是服务器的资源映射文件,告诉服务器各种文件的MIME类型,以及如何支持这些文件:access.conf用于配置服务器的访问权限,控制不同用户和计算机的访问限制:这三个配置文件控制着服务器的各

在Windows的Apache服务器上配置对PHP和CGI的支持_Linux

现在有越来越多的个人主页站长需要了解如何如何在windows系统下配置自己的php,cgi服务器,以方便本地调试cgi和php的程序. 我们可以用Apache(windows版)来一次搞定:以下由我自己整理的关于在单机Windows环境下的安装和配置 Apache Server 的文章.假如您正在 Windows 单机环境下测试自己的网站,建议您参考一下. 主要包括:安装和配置 Apache Server:使用 Perl CGI 脚本:使用 PHP 脚本. --部分内容参考<Apache Ser

apache服务器全局配置详解(全)_Linux

Apache服务器全局配置之服务器标识配置篇 服务器标识相关指令:ServerNameServerAdminServerSignatureServerTokensUseCanonicalNameUseCanonicalPhysicalPort ServerAdmin和ServerTokens指令控制有关服务器的哪些信息将出现在服务器生成的文档中(如错误消息).ServerTokens指令设置服务器HTTP响应头字段的值.ServerName.UseCanonicalName. UseCanoni

Php学习之Apache服务器详解

Php学习之服务器--Apache服务器详解 Iis服务器:主要是服务于微软,基于运行Microsoft windows的互联网基本服务 Lighttpd服务器:开源软件,针对高性能,底内存开销,cpu占用底,成熟度还不够 Apache服务器的介绍 1. 抓包软件:httpwatch.rar,了解发送和接受数据包 2. Apache服务器的安装 1. 查看windows中已经安装的服务,确定原先没有安装apache 2. 安装apache服务器: 3. 测试是否真的成功.在浏览器中输入http:

Apache 服务器的安装教程

apache|服务器|教程 为什么选择Apache?首先,Apache是免费的,你无需为它交纳任何费用:其次,Apache是开放源代码的,也许你感觉不到它的好处,但我可以告诉你,一个开放源代码的软件往往能够等到更广泛的支持,可以说,全世界的程序员都在为你服务.而且,它更灵活,使你能够根据自己的需要选用包含特定功能的模块.再给你提供一条消息,现在全世界超过60%的HTTP服务器在使用Apache.那么你要不要也加入其中呢?正文 你可以从Apache的网http://httpd.apache.org

实例学习Apache服务器的安全防护知识

Apache 一直是世界上使用率排名前三的 Web 服务器软件.企业使用其构建 Web 应用,从很大程度上都需要对其安全性进行综合考虑,以保证能够应对拒绝服务攻击.流量窃听.数据泄漏等网络威胁,从而保证企业门户网站的安全.除了使用业界流行的防火墙.IDS/IPS(入侵检测系统 / 入侵防御系统).WAF(Web 应用防火墙).UTM(统一威胁管理)等外部安全设备对 Apache 服务进行安全防护外,作为一种优秀的开源服务器软件,Apache 本身就具有很多优秀的特性可以为服务器管理员提供安全配置