Web实战之八:服务器性能的测量评价
2)分层排队网络模型
分层排队网络模型是排队网络模型的一种扩展,能够有效地弥补排队网络模型的不足。在一些分布式应用系统(如CORBA)和Web服务器系统中,一个进程既要经历节点设备的延时又要经历其软件服务的延时。如果不考虑这些软件服务延时的话,这些系统的响应时间和性能预测均会有很大误差,分层排队网络模型正是针对此点而提出来的。
下图是一个Web服务器的分层网络模型。图中客户端对服务器产生工作负载,用来访问服务器的服务;服务器的监听进程负责接收客户端的要求。模型中服务器提供三种服务:Image,HTML和CGI。它们是当前Internet上占据主流的服务,并且三种服务之间区别显著。
Image和HTML请求消耗服务器的处理器和硬盘资源;CGI请求产生另一个进程来执行相应的CGI程序。在这期间,服务器Pool进程必须等待CGI程序完成以便返回结果给客户端。在使用HTTP协议完成请求时,服务器Pool进程必须等待直至最后一个TCP/IP包被确认发送到客户端,这个等待时间包括了相应的CPU占有时间,因此可以很好地估计网络延时。
![]() |
| Web服务器的分层网络模型 |
本模型所用到的参数有两类:
(1)对于客户端请求来说有:请求到达的速率;访问监听进程的请求的类型的平均百分比。根据对大型网站日志的研究,我们设定Image,HTML和CGI请求所占比例为57%,30%和13%;服务器进程组中的进程号。
(2)对于服务器进程组的各项服务来说有:各项服务的平均CPU耗费时间;各项服务的平均硬盘花费;网络平均延时。
综上所述,为了解决采用少数客户端并不能很好地模拟大规模用户对服务器的访问这一问题,Httperf等软件提出了新的思路。但是,这些基于测量的软件都存在只能测量已存在的系统和费时费钱等缺点,为此人们提出了新的评测方法——模型方法。
本文在传统排队网络模型的基础上,提出了分层排队网络模型,解决了网络延时的估计问题。模型方法一般包括许多参数。这些参数的确定一般需要依据测量结果或者对系统参数的估计,因此把测量方法与模型方法粗暴地区别开来是不科学的。
有机地结合这两种方法,才是Web服务器评测软件今后的发展之路。
