本文先介绍一下各种WEB服务器平台,然后对影响WEB服务器性能的各方面做了分析,最后解析了目前使用最普遍的Apache服务器在服务请求高峰时的响应延迟现象
怎样才能缓解瓶颈效应? 众所周知,究竟选用哪种不同类型的传输介质,必须根据预期的负载类型来决定。因此,从这点来看,你应该可以粗略地决定究竟需要采用哪种硬件。尽管不同的平台提供不同的性能水平,各个平台的性能之间还是存在一定交迭的,因此,你可以在对需要采用多少数量的硬件作任何决定之前,初步选择一下那些你使用起来最觉舒适的平台。
下文将那些与特定网站(这类网站一般只采用标准的传输介质和内容类型,如静态HTML、
服务器解析文档以及从少量到数量适中的CGI程序)相关联的瓶颈根据其对系统的影响程度逐个列出。
吞吐量及
高峰传输速率或突发传输速率(Spikes/Burst Transfer Rates)
内存
Webserver客户端和文件系统缓冲区(Filesystem Cache)占用的活动内存
存储
访问时间,跨多硬盘访问的效率
中央处理器
在多进程或多线程环境下的性能
网络带宽 可用的带宽对于那些主要由静态页面构成的站点来说,也许是最关键的因素,但问题往往并不如你想象的那么简单。撇开网络的吞吐总量以及响应速度不讲,在高负载的环境下,系统的突发传输速率是非常重要的。尽管通过单一的T1或T3传输速率提供的总带宽对一个特定的站点而言也许绰绰有余,但其最大的传输速率(T1下为1.5mbit/s,T3下为4.5mbit/s)也可能不足以应付系统的高峰传输负载。在用户访问的高峰期,某些站点也许根本无法访问。这样的站点在用户企图访问它时显得慢如蜗牛,而服务器自身却仍旧非常空闲。这样看来,要成功搭建一个web主机,考虑清楚你到底需要多大的带宽显然是非常重要的。
内存 可用的物理内存是另外一个重要因素,这是因为对内存的占用率会直接随着对服务器请求数量的增加而增加。计算分配给每个并发用户的内存数量以及并发用户的平均数量,只是你要考虑的事情中的一部分。文件缓冲区也是非常重要的,因为它能将磁盘的使用频率降到最低程度,明显加快事务处理的总体速度。
对内存的需求很大程度上取决于使用在特定服务器上的软件的具体情况。除了
操作系统的管理能力和文件系统的缓冲区大小之外,你还需要将你所选择的web服务器软件对硬件的特殊要求调查清楚。
存储 和存储介质有关的读写时间指标也是非常重要的,对大型文件库和数据库(文件缓冲区的作用在这明显削弱)而言,尤其如此。在多设备协同工作的条件下,Web服务器的磁盘系统必须有
卓越的性能,推荐采用SCSI硬盘或RAID阵列。对于那些主要放开了“只读”权限的站点(用户不能上传数据),RAID是最佳的
解决方案。这是因为,在RAID阵列中存在多个硬盘磁头,能明显提升读取操作的数据吞吐量。
中央处理器 对于那些主要由静态页面构成的站点来说,CPU只是你需要考虑的最次要的一个因素。这是因为,即便是一个非常低端的PC电脑也能充分发掘T1通道的传输速率。但是,在使用了包括CGI、服务器解析文档或提供web访问方式的数据库的情况下,你需要更多地关注CPU的性能。在这种场合下,将事务处理速度和并发处理性能两个概念分清楚是很重要的。如果你需要向一个较小的用户群体提供某种对CPU依赖很大的应用服务,那么,一个高速的单CPU可能是最有用的。但是,如果存在多个用户同时对大批量的页面提出访问请求,那么在这种情况下(尤其在这些页面均以独立的进程或线程模式打开情况下),多CPU系统(即使这些CPU的速度都很慢)也许更为管用。
下一页>>
分析服务器的工作模式