如何测试和调试Linux的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配置的一个极佳方法,应该在你每次做出影响性能的更改时使用它。   请作者联系本站,及时附注您的姓名。联系邮箱:edu#chinaz.com(把#改为@)。

时间: 2024-10-25 10:20:49

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

链接-主机无法访问虚拟机中Linux的Apache服务器

问题描述 主机无法访问虚拟机中Linux的Apache服务器 Linux中Apache服务已经开启,防火墙也关闭了,在Linux中访问127.0.0.1显示it works! 但是在主机中的浏览器中无法链接Apache,请教各位大神~~ 解决方案 不知道你使用的是什么虚拟机软件,我之前使用的是virtualbox,使用桥接模式,让虚拟机和宿主主机在一个网段中,可以相互访问--

Linux下Apache服务器使用入门----.htaccess

这个文件的作用就是,把它放在某个目录下面,它所修改的配置方案会应用到这个目录,及其子目录 开启方式: 在/etc/httpd/conf/httpd.conf文件中   <Directory /> Options FollowSymLinks AllowOverride None </Directory> 把AllowOverride None修改为其他参数.参数部分一共有一下几种:     ALL AuthConfig FileInfo Indexes Option Limit .

linux下Apache服务器使用入门----httpd.conf

如果安装centos,系统本身已经安装了apache,名字为httpd这个服务就是对应的apache service httpd start service httpd stop service httpd restart 下面介绍一下apache的几个重要的配置文件 1 httpd.conf 这个文件在/etc/httpd/conf目录下,文件大致分为三个部分: 主服务器部分 这个部分主要是使用一些参数定义服务器的功能等等. ### Section 1: Global Environment

浅析linux下apache服务器的配置和管理_php技巧

一.两个重要目录:Apache有两个重要的目录:1.配置目录/etc/httpd/conf:2.文档目录/var/www: 二.两种配置模式:Apache在Fedora下的两种配置方式:文本模式(终端命令行)和图形化配置.两者各有优势:图形化下配置,更容易上手,在文本模式下直接编辑httpd.conf文件,自由性更强些.更直接. 三.Apache服务的启动与关闭Apache服务的停止.启动.关闭可以通过两种模式下进行操作:文本(终端)模式下和图形化界面. 四.终端下的操作如果你想用Linux作为

linux搭建apache服务器步骤详解

1.安装apr-1.5.1.tar.gz  命令:  wget http://apache.fayea.com/apache-mirror//apr/apr-1.5.1.tar.gz   tar zxvf apr-1.5.1.tar.gz   cd apr-1.5.1   ./configure   make   make install   2.安装apr-util-1.3.7.tar.gz  命令:   http://apache.fayea.com/apache-mirror//apr/a

Linux下Apache服务器设置与优化

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

使用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

Linux 内核的测试和调试(1)

Linux 内核的测试和调试(1) Linux 内核测试哲学 不管是开源还是闭源,所有软件的开发流程中,测试是一个重要的.不可或缺的环节,Linux 内核也不例外.开发人员自测.系统测试.回归测试.压力测试,都有各自不同的目的,但是从更高一个层次上看,这些测试的最终目的又是一样的:保证软件能一直运行下去,当有新功能加进去时,要保证新功能可以正常工作. 在软件释出 release 版之前,不用回归测试就能保证稳定性,并且尽量避免在软件发布后被用户发现 bug.调试被用户发现的 bug 是一项非常浪

如何集成Linux、Apache、PHP4、FastCGI、Oracle、MySQL环境

一. 准备工作 要实现将Linux/Apache/PHP4/FastCGI/Oracle/MySQL环境集成,必需先准备好以下软件包: (一)数据库的Perl接口 1.perl5的Oracle数据库DBI驱动程序:DBD-Oracle-1.03.tar.gz 2.perl5的通用数据库接口程序:DBI-1.13.tar.gz 3.perl5的MySQL数据库DBI驱动程序:Msql-Mysql-modules-1.2209.tar.gz (二)Oracle数据库 4.Oracle 8iR2(8.