现在的位置: 首页 > 综合 > 正文

Web服务器性能测试介绍

2013年12月06日 ⁄ 综合 ⁄ 共 2891字 ⁄ 字号 评论关闭
Web服务器性能测试介绍

一、引言

    随着Internet的快速发展,Web服务器已成为Web系统的重要组成部分,同时也是影响Web系统性能的主要因素,因此Web服务器性能的好坏一直是人们关注的问题。同时,Web及其应用程序的普及对Web服务器提出了越来越高的性能要求。随着Web服务器的重要性日益显著,为了及时掌握Web服务器的性能,需要对其进行公证的测试。

    Web服务器性能测试是指在一定的软硬件环境下,按照统一的度量标准,测试Web 服务器对各种请求的响应速度、最大顺畅连接数等性能指标,给出公正、可靠的性能评价。Web服务器性能测试不仅能够确定影响Web服务器性能的关键因素,进而可以采取有针对性的方法和策略对Web服务器进行优化,而且在Web系统构建过程中可以为选取Web服务器提供重要参考。

二、Web服务器的性能指标

    评估Web服务器性能是一个复杂的过程,需要考虑的因素有服务器的硬件配置、操作系统、HTTP软件、网络速度和工作负载等。采用测试的方法来衡量Web服务器的性能,首先要确定的就是测试指标。常用的Web服务器的性能指标主要包括以下几类:

    (1)时间指标

    *
      服务器响应时间(Server Response Time)

    客户端发送一个HTTP请求至收到HTTP响应头信息消耗的时间。

    *
      页面响应时间(Page Response Time)

    客户端从Web服务器请求一个完整的页面(包括内嵌对象)所消耗的时间。

    *
      往返时间(Round Trip Time)

    建立TCP连接时,从客户端发送SYN请求到服务器返回SYN/ACK的时间。

    *
      TCP连接建立时间

    客户端发出访问请求后,与Web服务器成功建立TCP连接所需的时间。

    (2)系统容量指标

    *
      并发用户数(Concurrent Users)

    Web服务器能够同时正确及时地服务的用户数。

    *
      每秒用户数(User Per Second)

    单位时间(1s)内成功连接到Web服务系统的新用户的个数。

    *
      并发连接数(Simultaneous Connections)

    Web服务器能够与客户端建立并保持同时打开的TCP连接数,最大并发连接数反映了Web服务器所对其客户多个连接的处理能力。

    *
      连接速率(Connect ion Rate)

    客户端与Web服务器在单位时间(1s)新建立的TCP新建连接的个数。

    *
      事务处理次数(Cumulative Transactions)

    Web服务器处理HTTP Transaction的累计总数定义为事务处理次数。

    *
      事务处理速率(Transactions Per second)

    在单位时间(1s)内成功响应HTTP Transaction的个数。

    (3)资源利用率指标

    资源利用率是指Web服务器不同资源(如服务器的CPU,内存、磁盘、网络带宽等)的使用程度,它常常用占资源的最大可用量的百分比来衡量。Web服务器资源利用率指标包括CPU占用率、内存占用率、磁盘占用率、可用网络带宽。

三、Web服务器性能测试方法

    鉴于Web服务器的访问特点,Web服务器性能测试方法通过模拟客户端对Web系统的压力量来测试Web服务器性能是否能够满足Web系统的需要。它主要包括并发性能测试、疲劳强度测试等,其中并发性能测试是重点。

    (1) 并发性能测试

    并发性能测试的过程是一个负载测试和压力测试的过程,即逐渐增加负载,直到系统的瓶颈或者不能接收的状态,通过综合分析请求响应数据和资源监控指标,来确定系统并发性能的过程。

    负载测试(Load Testing)是确定在各种工作负载下系统的性能,通过在被测系统上不断增加压力,直到性能指标超过预定指标或某种资源使用已经达到饱和状态。主要目的:寻找Web服务器的处理能力极限,包括支持的最大用户、业务等处理能力的约束;了解Web系统性能容量;配合Web系统进行调优。测试角度可以是并发用户数、业务量、数据量等不同方面的负载。负载测试的特点有:

    压力测试(Stress Testing)是通过确定一个系统的瓶颈或者不能再接收的极限点,来获得系统所能提供的最大服务级别的测试。压力测试方法测试Web服务器在资源处于饱和或超负荷的情况下(例如CPU、内存等在饱和状态下),系统能够处理的HTTP请求或用户会话的能力以及系统是否会出现错误。其主要意义是通过测试、调优保证系统即使在用户的极端压力下也不会出错甚至或者导致系统崩溃。因此可以认为是一种在极端压力下的稳定性测试。

    (2) 疲劳强度测试

    疲劳强度测试也称持久度测试(durability),可以被当作是一个长期的负载或压力测试,它是选择Web服务器稳定运行情况下能够支持的最大并发用户数,持续执行一段时间业务,通过综合分析交易执行指标和资源监控指标来确定系统处理最大工作量强度性能的过程。疲劳强度测试可以采用工具自动化生成的方式进行测试,也可以手工编写程序测试,其中后者占的比例较大。

    一般情况下以Web服务器能够正常稳定响应请求的最大并发用户数进行一定时间的疲劳测试,获取交易执行指标数据和系统资源监控数据。如出现错误导致测试不能成功执行,则及时调整测试指标,例如降低用户数、缩短测试周期等。还有一种情况的疲劳测试是对当前系统性能的评估,用系统正常业务情况下并发用户数为基础,进行一定时间的疲劳测试。

四、Web服务器性能测试工具

    针对Web服务器的应用场景和测试目标不同,可以将Web服务器性能测试工具分为如下三类:

    (1)基准测试工具

    服务器基准测试测量系统的整体性能,并把各部件间的相互作用考虑在内。服务器基准测试工具是为了评测服务器计算环境而特别设计的。面向Web服务器的基准测试工具主要包括两个系列:一个由是由标准性能评估组织(SPEC)开发的Web 服务器基准测试,包括SPECweb96、SPECweb99、SPECweb2005;二是由事务处理性能委员会(TPC,Transaction Processing Corp)制定的TPC-C型服务器基准测试。

    (2)部件性能测试工具

    Web服务器的性能可以按照Web服务器的部件或子系统分别考虑,包括CPU性能、内存性能、存储性能、网络性能等。部件性能测试工具主要是测试Web服务器的一个或多个部件的性能。测试Web服务器部件或子系统性能的测试工具有:Iometer、 Sisoft Sandra、Iozone、Netperf。

    (3)基于应用的测试工具

    为了公正有效地评价Web服务器在Web系统中性能,基于应用的测试工具需要满足两个条件:能够模拟大量用户的行为;能够比较容易地获取各种性能评价指标。目前,业界流行的性能测试工具包括:LoadRunner、Webload、QALoad,可以对Web服务器进行负载压力测试。

抱歉!评论已关闭.