河南中医学院《Linux操作系统》课程设计报告题目:Linux下Apache性能分析所在院系:信息技术学院专业年级:2011级计算机科学与技术完成学生:2011180030王玉栋指导教师:阮晓龙完成日期:2014年06月08日目录1.课程设计题目概述...............................................................................................................................32.研究内容与目的..................................................................................................................................43.研究方法..............................................................................................................................................64.研究报告..............................................................................................................................................75.测试报告/实验报告...........................................................................................................................136.课题研究结论....................................................................................................................................147.总结....................................................................................................................................................151.课程设计题目概述Linux下的Apache性能分析,以CentOS(CentOS_6.5_i386)操作系统为例,安装和配置Apache服务。对Apache的性能进行研究,其中包括应答延迟、吞吐率、系统带宽、最大稳定连接数等参数。2.研究内容与目的正文:应答延迟:在使用子进程处理HTTP请求的Web服务器上,由于要首先生成子进程才能处理客户的请求,因此反应时间就有一点延迟即应答延迟。但是,Apache服务器使用了一个特殊技术来摆脱这个问题,这就是预先生成多个空余的子进程驻留在系统中,一旦有请求出现,就立即使用这些空余的子进程进行处理,这样就不存在生成子进程造成的延迟了。在运行中随着客户请求的增多,启动的子进程会随之增多,但这些服务器副本在处理完一次HTTP请求之后并不立即退出,而是停留在计算机中等待下次请求。但是空余的子进程副本不能光增加不减少,太多的空余子进程没有处理任务,也占用服务器的处理能力,因此也要限制空余副本的数量,使其保持一个合适的数量,使得既能及时回应客户请求,又能减少不必要的进程数量。因此就可以使用参数MinSpareServers来设置最少的空余子进程数量,以及使用参数MaxSpareServers来限制最多的空闲子进程数量,多余的服务器进程副本就会退出。根据服务器的实际情况来进行设置,如果服务器性能较高,并且也被频繁访问,就应该增大这两个参数的设置。对于高负载的专业网站,这两个值应该大致相同,并且等同于系统支持的最多服务器副本数量,也减少不必要的副本退出。吞吐率的基本概念描述web服务器的并发处理能力。简单说就是单位时间内处理的请求数,单位是“请求数每秒”或“reqs/s”。比如某一时刻某apachehttpserver的吞吐率为36.3requests/sec。然而我们关心的往往是服务器的并发处理能力的上限,即最大吞吐率,因此通常所说的吞吐率即为最大吞吐率。吞吐率的前提包含如下条件:并发用户数,总请求数,请求资源描述。离开这三个条件是妄谈吞吐率,吞吐率为多少多少,必须附带这三个测试条件。系统带宽Apache作为一种http服务,相比FTP总是不容易控制,特别是当网站以http方式提供软件/音乐下载时,若是每个用户都开启多个线程并没有带宽的限制,将很快达到http的最大连接数或者造成网络壅塞,使得网站的许多正常服务都无法运行。不过,Apache的使用者们早已开发出了mod_limitipconn和mod_bandwidth两个模块,来控制http的并发连接数和用户所能够使用的带宽。3.研究方法3.1研究方法3.1.1实验法3.2实验方法3.2.1实践3.3可行性分析3.3.1要求:1、明确课题研究中使用的研究方法、实验方法。2、撰写课题研究的可行性分析报告。4.研究报告4.1Apache服务的安装与配置4.1.1Apache服务的安装由于CentOS已经封装了Apache,直接运行安装[root@localhost~]#yuminstallhttpd同样配置系统让Apache随系统启动:[root@localhost~]#chkconfig--levels235httpdon配置完毕,启动Apache:[root@localhost~]#/etc/init.d/httpdstar浏览器访问,即可看到Apache2的测试页若想安装最新的Apache可以:1)卸载系统自带的httpd:rpm-qa|grephttpdrpm-ehttpd-2.2.15-15.el6.centos--nodepsrpm-ehttpd-tools2)找到最新版下载链接从找到最新版下载链接3)开始安装Apachecd/usr/local/srcwget=/usr/local/apache--enable-vhost-alias--enable-rewrite--enable-infomakemakeinstall4)复制初始化文件和设置Apache开机启动cpbuild/rpm/httpd.init/etc/init.d/httpdchmod755/etc/init.d/httpdchkconfig--addhttpdchkconfig--level35httpdon5)启动/停止服务servicehttpdrestart4.1.2Apache服务的配置添加用户的个人网站[root@localhost~]#vi/etc/httpd/conf/httpd.conf找到IfModulemod_userdir.c,在下面有UserDirdisable#UserDirpublic_html改成:#UserDirdisableUserDirpublic_html[root@localhost~]#servicehttpdrestart添加一个链接:[root@localhosthtml]#ln-s/home/demo/public_html/linux即以/home/demo/public_html/为linux链接的路径在碰到权限问题时,可将配置文件中的Directory/OptionsFollowSymLinksAllowOverrideNoneOrderdeny,allowDenyfromallSatisfyall/Directory修改成Directory/OptionsFollowSymLinksAllowOverrideNoneOrderdeny,allow#DenyfromallAllowfromall#允许所有访问Satisfyall/Directory同时路径的权限设置为755[root@localhostdemo]#chmod755public_html4.2Apache服务器的监控4.2.1对ApacheServerStatus的启用对Apache的状态管理的模块是LoadModulestatus_modulemodules/mod_status.so,所以这个需要有,然后打开下面的配置ExtendedStatusOn配置ApacheServerStatus的权限location/server-statusSetHandlerserver-statusOrderDeny,AllowDenyfromallAllowfromall/location打开查看使用来访问,(另外可以加下面两种参数:?refresh=N:设置多久自动刷新一次,?auto:生产机器可以读状态)如图:字段说明ServerVersionApache服务器的版本。ServerBuiltApache服务器编译安装的时间。CurrentTime目前的系统时间。RestartTimeApache重新启动的时间。ParentServerGenerationApache父程序(parentprocess)的世代编号,就是httpd接收到SIGHUP而重新启动的次数。ServeruptimeApache启动后到现在经过的时间。Totalaccesses到目前为此Apache接收的联机数量及传输的数据量。CPUUsage目前CPU的使用情形。_SWSS....所有Apacheprocess目前的状态。每一个字符表示一个程序,最多可以显示256个程序的状态。ScoreboardKey上述状态的说明。以下为每一个字符符号所表示的意义:*_:等待连结中。*S:启动中。*R:正在读取要求。*W:正在送出回应。*K:处于保持联机的状态。*D:正在查找DNS。*C:正在关闭连结。*L:正在写入记录文件。*G:进入正常结束程序中。*I:处理闲置。*.:尚无此程序。Srv本程序与其父程序的世代编号。PID本程序的processid。Acc分别表示本次联机、本程序所处理的存取次数。M该程序目前的状态。CPU该程序所耗用的CPU资源。SS距离上次处理要求的时间。Req最后一次处理要求所耗费的时间,以千分之一秒为单位。Conn本次联机所传送的数据量。Child由该子程序所传送的数据量。Slot由该Slot所传送的数据量。Client客户端的地址。VHost属于哪一个虚拟主机或本主机的IP。Request联机所提出的要求信息。为了方便记录apache状态,可运行脚本#!/bin/shWget–O/home/demo/apache_server_status“”将TotalAccesses、TotalkBytes、CPULoad、Uptime、ReqPerSec、BytesPerSec、BytesPerReq、BusyWorkers、IdleWorkers等信息存到/home/demo/apache_server_status里。4.2.2通过其他命令查看Apache运行状态查看ht