LoadRunner性能测试指标参考

性能测试指标参考

目录

1术语 . ..................................................................................................................................................... 2

1.1响应时间 . ................................................................................................................................. 2

1.2并发用户数 . ............................................................................................................................. 2

1.3在线用户数 . ............................................................................................................................. 2

1.4吞吐量 . ..................................................................................................................................... 3

2 Vuser 图............................................................................................................................................. 3

2.1 “运行 Vuser ”图 (Running Vusers) ................................................................................. 3

2.2 “集合”图 (Rendezvous) . ......................................................................................................... 3

3 错误图 . ................................................................................................................................................ 3

3.1 “每秒错误数(按描述)”图 (Error Statistics)................................................................. 3

4 事务图 . ................................................................................................................................................ 4

4.1 “平均事务响应时间”图 (Average Transaction Response Time) . ..................................... 4

4.2“负载下的事务响应时间”图 (Running Vuser –Average Transaction Response Time) ........ 4

4.3“页面细分”图 (Web Page Diagnostics图) ......................................................................... 5

4.4“每秒事务数”(Transactions per second 简称:TPS ) ....................................................... 6

5 Web资源图.......................................................................................................................................... 6

5.1“每秒点击次数”图 (Hits per Second) ................................................................................ 6

5.2“吞吐量”图 (Throughput )................................................................................................... 6

6 系统资源图 . ........................................................................................................................................ 6

6.1 LoadRunner下监控的UNIX 资源指标 ....................................................................................... 6

6.1.1平均负载(Average load) .................................................................................................. 6

6.1.2 CPU利用率(CPU utilization) . ........................................................................................... 7

6.1.3 每秒传入的包数(Paging rate) ........................................................................................ 7

6.2使用NMON 工具监控Linux 资源 ............................................................................................... 7

6.2.1 系统资源汇总(SYS_SUMM) ........................................................................................... 7

6.2.2 磁盘资源汇总(DISK_SUMM).......................................................................................... 8

6.2.3 内存资源(MEM ) ............................................................................................................. 8

7 网络监控器图 ..................................................................................................................................... 9

7.1 “网络延迟时间”图(Network Delay Time) . ........................................................................ 9

8 数据库服务器资源图 ....................................................................................................................... 10

8.1 Oracle服务器监控度量 ............................................................................................................. 10

8.1.1 添加Oracle 自定义计数器 ............................................................................................... 11

8.1.2 性能分析工具Statspack 所提供的性能分析指标 ........................................................... 15

8.2 SQL Server服务器监控度量 ...................................................................................................... 18

1术语

1.1响应时间

响应时间是从请求到响应所需时间,从客户端请求开始,结束于来自服务器的响应并 呈现页面的时间。

从图3-1可以看出,对于一个三层应用架构,响应时间包括了网络传输时间(N1+N2+N3+N4)、Web 服务器和数据库服务器的处理时间(A1+A2+A3)。

图1-1 WEB应用响应时间分析

响应时间标准可参考国外的3/5/10原则:

1)在3秒钟之内,页面给予用户响应并有所显示,可认为是“很不错的”;

2)在3~5秒钟内,页面给予用户响应并有所显示,可认为是“好的”;

3)在5~10秒钟内,页面给予用户响应并有所显示,可认为是“勉强接受的”;

4)超过10秒就让人有点不耐烦了,用户很可能不会继续等待下去;

1.2并发用户数

并发用户数是在同一时刻与服务器进行了交互的在线用户数量。

在实际的性能测试中,一般比较关注业务的并发用户数,公式(1)和(2)中用来估算并发用户数和峰值,其中C 是平均的并发用户数,Cp 是并发用户数峰值,n 是Iogin session的数量,L 是Iogin session的平均长度,Iogin session定义为用户登录进入系统到退出系统的时间段,假设用户的Iogin session产生符合泊松分布,T 是考察的时间长度。

例如一个OA 系统的考察时间长度为8小时。

平均的并发用户数 C=n L/T (1)

并发用户数峰值 Cp=C+3 √C (2)

假设OA 系统有5000个用户,每天访问系统的平均用户数是800个,用户在8小时工作时间内使用系统,一个典型用户,一天内从登录到退出系统的平均时间为4小时,依据公式(1)和(2)可计算平均并发用户数和峰值用户数。其中,C=800 4/8=400,Cp=400+3 √C =460。

1.3在线用户数

在线用户数是指登录到系统,Iogin session (会话)未失效的用户数。在线用户不一定给服务器产生压力,实际上在线用户也不一定会和其他用户发生并发,例如正在浏览网页的用户,对

服务器没有任何影响。

1.4吞吐量

吞吐量是在一次性能测试过程中网络上传输的数据量的总和。吞吐量/传输时间就是吞吐率,TPS 是每秒钟系统能够处理的交易或者事务的数量,它是衡量系统处理能力的重要指标。吞吐量树枝越大

说明系统处理能力越强;

吞吐量应该是随着每秒点击率的增加而增加,这种增加是建立在带宽足够处理用户提出的所有请求的基础上。

在比较吞吐量和每秒点击率中可以获得服务器在执行过程中的信息。如果服务器如预期的一样执行,那么呑吐量会随着它每秒的点击量而增加。如果点击的次数增加而呑吐量恒定或减少,就说明服务器无法执行增加的请求(每秒点击率),结果就是事务响应时间的增加。

2 Vuser 图

在负载测试场景执行期间,Vuser 会在执行事务时生成数据。通过 Vuser 图您可以

确定场景执行期间 Vuser 的整体运行情况。这些图会显示 Vuser 状态、已完成脚

本的 Vuser 数以及集合统计信息。将这些图与事务图相结合可以确定 Vuser 数目

对事务响应时间的影响。

2.1 “运行 Vuser ”图 (Running Vusers)

“运行 Vuser ”图显示测试期间每秒钟执行 Vuser 脚本的 Vuser 数及其状态。此图 对于确定任意给定时刻服务器上的 Vuser 负载非常有用。默认情况下,此图仅显 示处于运行状态的 Vuser 。要查看其他 Vuser 状态,请将筛选条件设置为所需的状

态。

2.2 “集合”图 (Rendezvous)

“集合”图显示在集合点处释放 Vuser 的时间以及每个点释放的 Vuser 数。

此图有助于了解事务性能时间。通过对比“集合”图和“平均事务响应时间”

图,您可以看到由集合产生的负载峰值如何影响事务时间。

3 错误图

3.1 “每秒错误数(按描述)”图 (Error Statistics)

“每秒错误数(按描述)”图显示负载测试场景运行期间每秒所发生错误的平均数(按错误描述分组)。在图例中显示错误描述。错误数越小越好,通过错误数可以定位系统在负载情况下,什么时候出错,查找出系统错误的原因。

常见错误提示分析:

1、Error: Failed to connect to server “10.10.10.30:8080″: [10060] Connection Error: timed out Error: Server “10.10.10.30″ has shut down the connection prematurely

分析:

A、应用服务死掉。

小用户时:程序上的问题。程序上处理数据库的问题

B、应用服务没有死

应用服务参数设置问题

例:在许多客户端连接Weblogic 应用服务器被拒绝,而在服务器端没有错误显示,则有可能是Weblogic 中的server 元素的AcceptBacklog 属性值设得过低。如果连接时收到connection refused 消息,说明应提高该值,每次增加25%。

C、数据库的连接

在应用服务的性能参数可能太小了;或数据库启动的最大连接数(跟硬件的内存有关)

2、 Error: Page download timeout (120 seconds) has expired

分析:可能是以下原因造成

A、应用服务参数设置太大导致服务器的瓶颈

B、页面中图片太多

C、在程序处理表的时候检查字段太多

4 事务图

4.1 “平均事务响应时间”图 (Average Transaction Response Time)

“平均事务响应时间”图显示负载测试场景运行期间每秒内用于执行事务的平均时间。X 轴表示自场景开始运行以来经过的时间。Y 轴表示每个事务的平均响应时间(秒)。响应时间标准可参考国外的3/5/10原则(见术语章节-响应时间部分) 。平均事务响应时间会随着负载用户数的增加而增加。平均事务响应时间在规定时间内越平稳越好。响应时间出现波峰越多系统越不稳定。

4.2“负载下的事务响应时间”图 (Running Vuser –Average Transaction Response Time)

“负载下的事务响应时间”图是“运行 Vuser”图与“平均事务响应时间”图的组合,显示负载测试场景运行期间相对于任何给定时间点运行的 Vuser 数目的事务时间。此图有助于查看 Vuser 负载对性能时间的总体影响,在分析逐渐加压的场景时最有用。

在Analysis 的“运行 Vuser”图 - 点击右键 – 选择“合并图表”(Merge Graphs)- 在图表选项,选择“平均事务响应时间”图;在合并类型选项,选择“Correlate ”。即可生成“负载下的事务响应时间”图。

图4-1 “负载下的事务响应时间”图

4.3“页面细分”图 (Web Page Diagnostics图)

“平均事务响应时间”图点击右键选择“Show Transaction Breakdown Tree” - 在“Breakdown Tree ”选择一要查看“页面细分”图的事务 - 点击右键,选择“Web Page Diagnostics for XX(事务)”,生成“页面细分”图。

注:生成“页面细分”图的前提是,执行场景时,需要在Controller – Diagnostics – 正常的从浏览器发送一个请求到最后显示,整个过程由以下时间片组成,如图4-2所示。

图4-2 网络时间解析图

1) DNS 解释时间(DNS Resolution)

浏览器向服务器发送一个请求,一般情况下,客户端的请求首先被发送到DNS 服务器上,通过域名解析,将DNS 名解析为IP 地址。其中域名解析的时间就是DNS 解析时间(DNS Resolution )。通过这个时间可以确定DNS 服务器或DNS 服务器的配置是否有问题。如果DNS 服务器运行情况良好,这个时间会比较小。

2) 连接时间(Connection )

DNS 解析完成后,请求被送到Web 服务器,之后浏览器与Web 服务器之间需要建立一个初始化连接。建立连接的过程就是连接时间(Connection )。通过这个时间就可以判断网络的情况,也可以判断Web 服务器是否能够响应这个请求。如果正常,这个时间会比较小。

3) 第一个字节时间(First Buffer)

建立连接后,Web 服务器发出第一个数据包,经过网络传输到客户端,浏览器成功接收到第一个字节的时间就是First Buffer的时间。这个度量时间不仅可以表示Web 服务器的延迟时间,还可以表示网络反应时间。

4) 接收时间(Receive )

从浏览器接收第一个字节起,知道成功收到最后一个字节,下载完成为止。

5) Client Time: 请求在客户端浏览器延迟时间,可能是由于客户端浏览器的ThinkTime Configuration ,勾上“Web Page Diagnostics”。

或者客户端其他方面引起的延迟;

6) Error Time :从发送一个HTTP 请求,到Web 服务器发送回一个HTTP 错误信息所需要的

时间。

4.4“每秒事务数”(Transactions per second 简称:TPS )

性能又一关键数据指标TPS ,该数据反映了系统在同一时间内处理业务最大能力,这个数据越高,说明系统处理能力越强。当然TPS 会受到负载的影响,也会随着负载的增加而逐渐增加,当系统进入繁忙的时候,TPS 会下降。当TPS 下降要查看是否服务处理能力下载,是否出现事务等待排队,导致响应时间的增加等情,结合响应时间指标和服务器指标分析。

5 Web资源图

5.1“每秒点击次数”图 (Hits per Second)

“每秒点击次数”图显示负载测试场景运行期间的每一秒内Vuser 向Web 服务器发出的 HTTP 请求数。此图可帮助您根据点击次数对 Vuser 生成的负载量进行评估。可以将此图与“平均事务响应时间”、“负载用户数”图进行比较,查看点击次数对事务性能的影响。点击随负载用户增加而增加,点击次数越多越好。点击数增加,响应时间增加超出规定时间,说明系统服务器排队处理事务,需要关注服务器的磁盘、内存、和CPU 使用情况确定系统性能问题。

5.2“吞吐量”图 (Throughput )

“吞吐量”图显示在负载测试场景运行的每一秒,服务器上的吞吐量。吞吐量以字节为单位,表示 Vuser 在任意给定的一秒内从服务器接收的数据量。此图可帮助您根据服务器吞吐量对 Vuser 生成的负载量进行评估。可以将此图与“平均事务响应时间”图进行比较,查看吞吐量对事务性能的影响。吞吐量会随负载用户增加受影响。当负载用户数量增加,吞吐量增加,响应时间在规定范围,说明系统稳定。当负载用户增加,吞吐量增加或者下降,响应时间超出规定范围,说明系统有问题或者服务处理能力下载。

6 系统资源图

LoadRunner 可监控Windows 资源、UNIX 资源。下面说下UNIX 资源的三个重要的指标。

6.1 LoadRunner下监控的UNIX 资源指标

6.1.1平均负载(Average load)

上一分钟同时处于“就绪”状态的平均进程数,数值最好小于 CPU个数 * 核心数 * 0.7。如果等于,那就是说CPU 正好满负载,再多一点,可能就要出问题了,有任务不能被及时分配处理器。

6.1.2 CPU利用率(CPU utilization)

CPU 的使用时间百分比。如果该值持续超过95%,表明瓶颈是CPU 。那也许该增加一个处理器或换一个更快的处理器,如果服务器专用于SQL Server,可接受的最大上限是80-85%。合理使用范围应该在60%-70%,最好不要超过75%。

6.1.3 每秒传入的包数(Paging rate)

每秒钟读入物理内存或写入页面文件的页数,如果该数值偶尔走高,表明当时有线程竞争内存。如果持续很高,则内存可能是瓶颈,也有可能是内存访问命中率底。

6.2使用NMON 工具监控Linux 资源

监控前需要根据服务器的操作系统来安装相应版本的NMON (NMON for Solaris, NMON for Linux )。

为了配合性能测试,我们往往需要将一个时间段内系统资源消耗情况记录下来,这时可以使用命令:./nmon -f -s 10 -c 360。说明:

./nmon:反斜杠后面的命令名为安装的一个文件名(不同版本可能不同)

-f :按标准格式输出文件名称:_YYYYMMDD_HHMM.nmon

-s :每隔n 秒抽样一次,这里为10秒

-c :取出多少个抽样数量,这里为360,即监控=10*360/3600=1小时

该命令启动后,会在nmon 所在目录下生成监控文件,并持续写入资源数据,直至360个监控点收集完成——即监控1小时,这些操作均自动完成,无需手工干预,测试人员可以继续完成其他操作。如果想停止该监控,需要通过“#ps –ef|grep nmon ”查询进程号,然后杀掉该进程以停止监控。

注:对于NMON for Solaris ,可以使用命令:./sadc 10 360 test 。即每隔10秒抽样一次,抽样360次。

test 是文件名,同时还会生成一个test.hostname_yymmdd_hhmm.nmon格式的数据。 由于在Solaris ,直接输入上面命令,若关闭shell 窗口,或输入命令后回车,则直接退出执行命令。为了使命令能在后台执行,命令要改为:nohup ./sadc 10 360 test &

UNIX 操作系统监控命令:vmstat \ iostat \top\sat\sag;

6.2.1 系统资源汇总(SYS_SUMM)

系统资源汇总如下图所示,显示了系统CPU 及IO 资源的总体使用情况。CPU%值持续超过95%,表明瓶颈是CPU 。如果服务器专用于SQL Server,可接受的最大上限是80-85%。合理使用范围应该在60%-70%,最好不要超过75%。

图6-1 系统资源汇总

6.2.2 磁盘资源汇总(DISK_SUMM)

可以通过磁盘的详细信息来帮助判断磁盘IO 值偏高的原因(若认为磁盘IO 值偏高)。如果磁盘写入数据较多,平均值达到每秒450KB ,可以判断这是造成磁盘IO 偏高的主要原因,那么结合系统实际设置,可以进一步确定造成问题的原因,如系统日志级别过低等等。

下图是磁盘资源汇总图:

图6-2 磁盘资源汇总

6.2.3 内存资源(MEM )

内存资源主要有两项指标:实际剩余内存百分比(Real Free %),实际内存总体大小(Real total(MB))。通过这两个指标,可以知道内存的使用情况。下图为内存资源图。

图6-3 内存资源

7 网络监控器图

7.1 “网络延迟时间”图(Network Delay Time)

在使用“网络延迟时间”图前,需要添加要监控的路径。

例如需要监控数据库服务器和Vuser Load Generator 之间的网络延迟时间,在Controller 的“网络延迟时间”图 - 点击右键,选择“Add Measurements” - 在Network Delay Time对话框的“Monitor the network delay from machine:”区域点击“Add ” – 输入数据库服务器的IP 地址 – 在“To machine(s):”区域点击“Add ” – 输入Vuser Load Generator(即负载机)的IP 地址 – 点击“OK ”,即可监控数据库服务器和Vuser Load Generator 之间的网络延迟时间。

下图将网络延迟显示为场景已用时间的函数。图中显示,在场景开始后的第 8 分钟, 有 16 毫秒的延迟。

图7-1 “网络延迟时间”图

也可以通过“网络子路径时间”图、“网络段延迟”图来查看某网络段的延迟时间。 为了验证网络瓶颈,可以合并多个图来确定瓶颈是否由网络引起。例如,使用“网络延迟时间”和“运行 Vuser”图可以确定Vuser 的数目如何影响网络延迟。“网络延迟时间”图显示负载测试场景运行期间的网络延迟。“运行 Vuser”图显示正在运行的Vuser 数目。

在下面的合并图中,将网络延迟与正在运行的 Vuser 数目进行了对比。此图显示,当 10 个 Vuser 全部运行时,出现了22毫秒的网络延迟,暗示网络可能已超载。

图7-2 “网络延迟时间-运行Vuser ”图

8 数据库服务器资源图

8.1 Oracle服务器监控度量

使用LoadRunner 监控Oracle 服务器需要设置Oracle 监控环境,具体请参与LR11的用户操作手册《HP LoadRunner Controller User Guide》如何设置 Oracle 监控环境章节,或参考《研发-orcal 数据库监控配置》。

监控 Oracle 服务器时最常使用以下度量(来自 V$SYSSTAT 表):

8.1.1 添加Oracle 自定义计数器

LR 自带的计数器,有时候不足以满足监控的需求,故需要手动添加自定义的Oracle 计数器。 添加步骤如下:

1) 在LR 的安装目录“\HP\LoadRunner\dat\monitors”下找到文件“vmon.cfg ” 2) 打开该文件“vmon.cfg ”,找到第三行“CustomCounters=xx”(其中xx 为目前已定义

的自定义计数器个数),把自定义计数器个数“xx ”改为(原个数+本次添加的个数)总和

3) 在该文件“vmon.cfg ”中以下面格式插入相应的计数器定义说明:

;[Custom0]

;Name must be unique ;Name=Five Hundred

;Description=This counter always returns 500. ;Query=SELECT 500 FROM DUAL ;IsRate=0

其中,“[Custom0]”的序号 “0”应改为相应的序号(序号必须由“0”开始连续加1递

增,如0,1,2…;若本来已有自定义计数器,由序号由原有序号开始递增。)

下面为增加的12个计数器:

[Custom0]

;Name must be unique

Name=库快存命中率

Description=命中率应大于0.9

Query=SELECT 100*((sum(pins-reloads))/sum(pins)) from v$librarycache IsRate=0

[Custom1]

;Name must be unique Name=高速缓存区命中率 Description=命中率应大于0.9 Query=SELECT round(1-SUM(PHYSICAL_READS)/(SUM(DB_BLOCK_GETS) + SUM(CONSISTENT_GETS)), 4) * 100 FROM (SELECT CASE WHEN NAME='physical reads' THEN VALUE END PHYSICAL_READS,CASE WHEN NAME = 'db block gets' THEN VALUE END DB_BLOCK_GETS,CASE WHEN NAME = 'consistent gets' THEN VALUE END CONSISTENT_GETS FROM V$SYSSTAT WHERE Name IN ('physical reads','db block gets','consistent gets')) IsRate=0

[Custom2]

;Name must be unique

Name=共享区库缓存区命中率 Description=命中率应大于0.99

Query=Select round(sum(pins-reloads)/sum(pins) * 100, 2) from v$librarycache IsRate=0

[Custom3]

;Name must be unique

Name=共享区字典缓存区命中率 Description=命中率应大于0.85

Query=Select round(sum(gets-getmisses-usage-fixed)/sum(gets) * 100, 2) from v$rowcache IsRate=0

[Custom4]

;Name must be unique Name=检测回滚段的争用 Description=应该小于1%

Query=select round(sum(waits)/sum(gets) * 100, 2) from v$rollstat IsRate=0

[Custom5]

;Name must be unique

Name=检测回滚段收缩次数

Description=应该

Query=select sum(shrinks) from v$rollstat, v$rollname where v$rollstat.usn = v$rollname.usn IsRate=0

[Custom6]

;Name must be unique

Name=监控表空间的I/O读总数 Description=监控表空间的I/O

Query=select sum(f.phyrds) pyr from v$filestat f, dba_data_files df where f.file# = df.file_id IsRate=0

[Custom7]

;Name must be unique

Name=监控表空间的I/O块读总数 Description=监控表空间的I/O

Query=select sum(f.phyblkrd) pbr from v$filestat f, dba_data_files df where f.file# = df.file_id IsRate=0

[Custom8]

;Name must be unique

Name=监控表空间的I/O写总数 Description=监控表空间的I/O

Query=select sum(f.phywrts) pyw from v$filestat f, dba_data_files df where f.file# = df.file_id IsRate=0

[Custom9]

;Name must be unique

Name=监控SGA 中重做日志缓存区的命中率 Description=应小于1% Query=select

Decode(immediate_gets+immediate_misses,0,0,immediate_misses/(immediate_gets+immediate_misses)*100) ratio2 FROM v$latch WHERE name IN ('redo copy') IsRate=0

[Custom10]

;Name must be unique

Name=监控内存和硬盘的排序比率 Description=应小于10%

Query=select round(sum(case when name='sorts (disk)'then value else 0 end)/sum(case when name='sorts (memory)' then value else 0 end)*100,2) from (select name,value from v$sysstat where name in ('sorts (memory)','sorts (disk)')) IsRate=0

[Custom11]

;Name must be unique

Name=内存排序命中率 Description=应大于95%

Query=select round((100*b.value)/decode((a.value+b.value), 0, 1, (a.value+b.value)), 2)from v$sysstat a, v$sysstat b where a.name='sorts (disk)' and b.name='sorts (memory)' IsRate=0

4) 编辑该文件后,需要重启LR 的控制器,才能在监控Oracle 服务器时在“CUSTOM ”下

添加这些自定义的计数器。

指标说明:

8.1.2 性能分析工具Statspack 所提供的性能分析指标

注:以下指标取自Oracle 的性能分析工具Statspack 所提供的性能分析指标。

8.2 SQL Server服务器监控度量

性能测试指标参考

目录

1术语 . ..................................................................................................................................................... 2

1.1响应时间 . ................................................................................................................................. 2

1.2并发用户数 . ............................................................................................................................. 2

1.3在线用户数 . ............................................................................................................................. 2

1.4吞吐量 . ..................................................................................................................................... 3

2 Vuser 图............................................................................................................................................. 3

2.1 “运行 Vuser ”图 (Running Vusers) ................................................................................. 3

2.2 “集合”图 (Rendezvous) . ......................................................................................................... 3

3 错误图 . ................................................................................................................................................ 3

3.1 “每秒错误数(按描述)”图 (Error Statistics)................................................................. 3

4 事务图 . ................................................................................................................................................ 4

4.1 “平均事务响应时间”图 (Average Transaction Response Time) . ..................................... 4

4.2“负载下的事务响应时间”图 (Running Vuser –Average Transaction Response Time) ........ 4

4.3“页面细分”图 (Web Page Diagnostics图) ......................................................................... 5

4.4“每秒事务数”(Transactions per second 简称:TPS ) ....................................................... 6

5 Web资源图.......................................................................................................................................... 6

5.1“每秒点击次数”图 (Hits per Second) ................................................................................ 6

5.2“吞吐量”图 (Throughput )................................................................................................... 6

6 系统资源图 . ........................................................................................................................................ 6

6.1 LoadRunner下监控的UNIX 资源指标 ....................................................................................... 6

6.1.1平均负载(Average load) .................................................................................................. 6

6.1.2 CPU利用率(CPU utilization) . ........................................................................................... 7

6.1.3 每秒传入的包数(Paging rate) ........................................................................................ 7

6.2使用NMON 工具监控Linux 资源 ............................................................................................... 7

6.2.1 系统资源汇总(SYS_SUMM) ........................................................................................... 7

6.2.2 磁盘资源汇总(DISK_SUMM).......................................................................................... 8

6.2.3 内存资源(MEM ) ............................................................................................................. 8

7 网络监控器图 ..................................................................................................................................... 9

7.1 “网络延迟时间”图(Network Delay Time) . ........................................................................ 9

8 数据库服务器资源图 ....................................................................................................................... 10

8.1 Oracle服务器监控度量 ............................................................................................................. 10

8.1.1 添加Oracle 自定义计数器 ............................................................................................... 11

8.1.2 性能分析工具Statspack 所提供的性能分析指标 ........................................................... 15

8.2 SQL Server服务器监控度量 ...................................................................................................... 18

1术语

1.1响应时间

响应时间是从请求到响应所需时间,从客户端请求开始,结束于来自服务器的响应并 呈现页面的时间。

从图3-1可以看出,对于一个三层应用架构,响应时间包括了网络传输时间(N1+N2+N3+N4)、Web 服务器和数据库服务器的处理时间(A1+A2+A3)。

图1-1 WEB应用响应时间分析

响应时间标准可参考国外的3/5/10原则:

1)在3秒钟之内,页面给予用户响应并有所显示,可认为是“很不错的”;

2)在3~5秒钟内,页面给予用户响应并有所显示,可认为是“好的”;

3)在5~10秒钟内,页面给予用户响应并有所显示,可认为是“勉强接受的”;

4)超过10秒就让人有点不耐烦了,用户很可能不会继续等待下去;

1.2并发用户数

并发用户数是在同一时刻与服务器进行了交互的在线用户数量。

在实际的性能测试中,一般比较关注业务的并发用户数,公式(1)和(2)中用来估算并发用户数和峰值,其中C 是平均的并发用户数,Cp 是并发用户数峰值,n 是Iogin session的数量,L 是Iogin session的平均长度,Iogin session定义为用户登录进入系统到退出系统的时间段,假设用户的Iogin session产生符合泊松分布,T 是考察的时间长度。

例如一个OA 系统的考察时间长度为8小时。

平均的并发用户数 C=n L/T (1)

并发用户数峰值 Cp=C+3 √C (2)

假设OA 系统有5000个用户,每天访问系统的平均用户数是800个,用户在8小时工作时间内使用系统,一个典型用户,一天内从登录到退出系统的平均时间为4小时,依据公式(1)和(2)可计算平均并发用户数和峰值用户数。其中,C=800 4/8=400,Cp=400+3 √C =460。

1.3在线用户数

在线用户数是指登录到系统,Iogin session (会话)未失效的用户数。在线用户不一定给服务器产生压力,实际上在线用户也不一定会和其他用户发生并发,例如正在浏览网页的用户,对

服务器没有任何影响。

1.4吞吐量

吞吐量是在一次性能测试过程中网络上传输的数据量的总和。吞吐量/传输时间就是吞吐率,TPS 是每秒钟系统能够处理的交易或者事务的数量,它是衡量系统处理能力的重要指标。吞吐量树枝越大

说明系统处理能力越强;

吞吐量应该是随着每秒点击率的增加而增加,这种增加是建立在带宽足够处理用户提出的所有请求的基础上。

在比较吞吐量和每秒点击率中可以获得服务器在执行过程中的信息。如果服务器如预期的一样执行,那么呑吐量会随着它每秒的点击量而增加。如果点击的次数增加而呑吐量恒定或减少,就说明服务器无法执行增加的请求(每秒点击率),结果就是事务响应时间的增加。

2 Vuser 图

在负载测试场景执行期间,Vuser 会在执行事务时生成数据。通过 Vuser 图您可以

确定场景执行期间 Vuser 的整体运行情况。这些图会显示 Vuser 状态、已完成脚

本的 Vuser 数以及集合统计信息。将这些图与事务图相结合可以确定 Vuser 数目

对事务响应时间的影响。

2.1 “运行 Vuser ”图 (Running Vusers)

“运行 Vuser ”图显示测试期间每秒钟执行 Vuser 脚本的 Vuser 数及其状态。此图 对于确定任意给定时刻服务器上的 Vuser 负载非常有用。默认情况下,此图仅显 示处于运行状态的 Vuser 。要查看其他 Vuser 状态,请将筛选条件设置为所需的状

态。

2.2 “集合”图 (Rendezvous)

“集合”图显示在集合点处释放 Vuser 的时间以及每个点释放的 Vuser 数。

此图有助于了解事务性能时间。通过对比“集合”图和“平均事务响应时间”

图,您可以看到由集合产生的负载峰值如何影响事务时间。

3 错误图

3.1 “每秒错误数(按描述)”图 (Error Statistics)

“每秒错误数(按描述)”图显示负载测试场景运行期间每秒所发生错误的平均数(按错误描述分组)。在图例中显示错误描述。错误数越小越好,通过错误数可以定位系统在负载情况下,什么时候出错,查找出系统错误的原因。

常见错误提示分析:

1、Error: Failed to connect to server “10.10.10.30:8080″: [10060] Connection Error: timed out Error: Server “10.10.10.30″ has shut down the connection prematurely

分析:

A、应用服务死掉。

小用户时:程序上的问题。程序上处理数据库的问题

B、应用服务没有死

应用服务参数设置问题

例:在许多客户端连接Weblogic 应用服务器被拒绝,而在服务器端没有错误显示,则有可能是Weblogic 中的server 元素的AcceptBacklog 属性值设得过低。如果连接时收到connection refused 消息,说明应提高该值,每次增加25%。

C、数据库的连接

在应用服务的性能参数可能太小了;或数据库启动的最大连接数(跟硬件的内存有关)

2、 Error: Page download timeout (120 seconds) has expired

分析:可能是以下原因造成

A、应用服务参数设置太大导致服务器的瓶颈

B、页面中图片太多

C、在程序处理表的时候检查字段太多

4 事务图

4.1 “平均事务响应时间”图 (Average Transaction Response Time)

“平均事务响应时间”图显示负载测试场景运行期间每秒内用于执行事务的平均时间。X 轴表示自场景开始运行以来经过的时间。Y 轴表示每个事务的平均响应时间(秒)。响应时间标准可参考国外的3/5/10原则(见术语章节-响应时间部分) 。平均事务响应时间会随着负载用户数的增加而增加。平均事务响应时间在规定时间内越平稳越好。响应时间出现波峰越多系统越不稳定。

4.2“负载下的事务响应时间”图 (Running Vuser –Average Transaction Response Time)

“负载下的事务响应时间”图是“运行 Vuser”图与“平均事务响应时间”图的组合,显示负载测试场景运行期间相对于任何给定时间点运行的 Vuser 数目的事务时间。此图有助于查看 Vuser 负载对性能时间的总体影响,在分析逐渐加压的场景时最有用。

在Analysis 的“运行 Vuser”图 - 点击右键 – 选择“合并图表”(Merge Graphs)- 在图表选项,选择“平均事务响应时间”图;在合并类型选项,选择“Correlate ”。即可生成“负载下的事务响应时间”图。

图4-1 “负载下的事务响应时间”图

4.3“页面细分”图 (Web Page Diagnostics图)

“平均事务响应时间”图点击右键选择“Show Transaction Breakdown Tree” - 在“Breakdown Tree ”选择一要查看“页面细分”图的事务 - 点击右键,选择“Web Page Diagnostics for XX(事务)”,生成“页面细分”图。

注:生成“页面细分”图的前提是,执行场景时,需要在Controller – Diagnostics – 正常的从浏览器发送一个请求到最后显示,整个过程由以下时间片组成,如图4-2所示。

图4-2 网络时间解析图

1) DNS 解释时间(DNS Resolution)

浏览器向服务器发送一个请求,一般情况下,客户端的请求首先被发送到DNS 服务器上,通过域名解析,将DNS 名解析为IP 地址。其中域名解析的时间就是DNS 解析时间(DNS Resolution )。通过这个时间可以确定DNS 服务器或DNS 服务器的配置是否有问题。如果DNS 服务器运行情况良好,这个时间会比较小。

2) 连接时间(Connection )

DNS 解析完成后,请求被送到Web 服务器,之后浏览器与Web 服务器之间需要建立一个初始化连接。建立连接的过程就是连接时间(Connection )。通过这个时间就可以判断网络的情况,也可以判断Web 服务器是否能够响应这个请求。如果正常,这个时间会比较小。

3) 第一个字节时间(First Buffer)

建立连接后,Web 服务器发出第一个数据包,经过网络传输到客户端,浏览器成功接收到第一个字节的时间就是First Buffer的时间。这个度量时间不仅可以表示Web 服务器的延迟时间,还可以表示网络反应时间。

4) 接收时间(Receive )

从浏览器接收第一个字节起,知道成功收到最后一个字节,下载完成为止。

5) Client Time: 请求在客户端浏览器延迟时间,可能是由于客户端浏览器的ThinkTime Configuration ,勾上“Web Page Diagnostics”。

或者客户端其他方面引起的延迟;

6) Error Time :从发送一个HTTP 请求,到Web 服务器发送回一个HTTP 错误信息所需要的

时间。

4.4“每秒事务数”(Transactions per second 简称:TPS )

性能又一关键数据指标TPS ,该数据反映了系统在同一时间内处理业务最大能力,这个数据越高,说明系统处理能力越强。当然TPS 会受到负载的影响,也会随着负载的增加而逐渐增加,当系统进入繁忙的时候,TPS 会下降。当TPS 下降要查看是否服务处理能力下载,是否出现事务等待排队,导致响应时间的增加等情,结合响应时间指标和服务器指标分析。

5 Web资源图

5.1“每秒点击次数”图 (Hits per Second)

“每秒点击次数”图显示负载测试场景运行期间的每一秒内Vuser 向Web 服务器发出的 HTTP 请求数。此图可帮助您根据点击次数对 Vuser 生成的负载量进行评估。可以将此图与“平均事务响应时间”、“负载用户数”图进行比较,查看点击次数对事务性能的影响。点击随负载用户增加而增加,点击次数越多越好。点击数增加,响应时间增加超出规定时间,说明系统服务器排队处理事务,需要关注服务器的磁盘、内存、和CPU 使用情况确定系统性能问题。

5.2“吞吐量”图 (Throughput )

“吞吐量”图显示在负载测试场景运行的每一秒,服务器上的吞吐量。吞吐量以字节为单位,表示 Vuser 在任意给定的一秒内从服务器接收的数据量。此图可帮助您根据服务器吞吐量对 Vuser 生成的负载量进行评估。可以将此图与“平均事务响应时间”图进行比较,查看吞吐量对事务性能的影响。吞吐量会随负载用户增加受影响。当负载用户数量增加,吞吐量增加,响应时间在规定范围,说明系统稳定。当负载用户增加,吞吐量增加或者下降,响应时间超出规定范围,说明系统有问题或者服务处理能力下载。

6 系统资源图

LoadRunner 可监控Windows 资源、UNIX 资源。下面说下UNIX 资源的三个重要的指标。

6.1 LoadRunner下监控的UNIX 资源指标

6.1.1平均负载(Average load)

上一分钟同时处于“就绪”状态的平均进程数,数值最好小于 CPU个数 * 核心数 * 0.7。如果等于,那就是说CPU 正好满负载,再多一点,可能就要出问题了,有任务不能被及时分配处理器。

6.1.2 CPU利用率(CPU utilization)

CPU 的使用时间百分比。如果该值持续超过95%,表明瓶颈是CPU 。那也许该增加一个处理器或换一个更快的处理器,如果服务器专用于SQL Server,可接受的最大上限是80-85%。合理使用范围应该在60%-70%,最好不要超过75%。

6.1.3 每秒传入的包数(Paging rate)

每秒钟读入物理内存或写入页面文件的页数,如果该数值偶尔走高,表明当时有线程竞争内存。如果持续很高,则内存可能是瓶颈,也有可能是内存访问命中率底。

6.2使用NMON 工具监控Linux 资源

监控前需要根据服务器的操作系统来安装相应版本的NMON (NMON for Solaris, NMON for Linux )。

为了配合性能测试,我们往往需要将一个时间段内系统资源消耗情况记录下来,这时可以使用命令:./nmon -f -s 10 -c 360。说明:

./nmon:反斜杠后面的命令名为安装的一个文件名(不同版本可能不同)

-f :按标准格式输出文件名称:_YYYYMMDD_HHMM.nmon

-s :每隔n 秒抽样一次,这里为10秒

-c :取出多少个抽样数量,这里为360,即监控=10*360/3600=1小时

该命令启动后,会在nmon 所在目录下生成监控文件,并持续写入资源数据,直至360个监控点收集完成——即监控1小时,这些操作均自动完成,无需手工干预,测试人员可以继续完成其他操作。如果想停止该监控,需要通过“#ps –ef|grep nmon ”查询进程号,然后杀掉该进程以停止监控。

注:对于NMON for Solaris ,可以使用命令:./sadc 10 360 test 。即每隔10秒抽样一次,抽样360次。

test 是文件名,同时还会生成一个test.hostname_yymmdd_hhmm.nmon格式的数据。 由于在Solaris ,直接输入上面命令,若关闭shell 窗口,或输入命令后回车,则直接退出执行命令。为了使命令能在后台执行,命令要改为:nohup ./sadc 10 360 test &

UNIX 操作系统监控命令:vmstat \ iostat \top\sat\sag;

6.2.1 系统资源汇总(SYS_SUMM)

系统资源汇总如下图所示,显示了系统CPU 及IO 资源的总体使用情况。CPU%值持续超过95%,表明瓶颈是CPU 。如果服务器专用于SQL Server,可接受的最大上限是80-85%。合理使用范围应该在60%-70%,最好不要超过75%。

图6-1 系统资源汇总

6.2.2 磁盘资源汇总(DISK_SUMM)

可以通过磁盘的详细信息来帮助判断磁盘IO 值偏高的原因(若认为磁盘IO 值偏高)。如果磁盘写入数据较多,平均值达到每秒450KB ,可以判断这是造成磁盘IO 偏高的主要原因,那么结合系统实际设置,可以进一步确定造成问题的原因,如系统日志级别过低等等。

下图是磁盘资源汇总图:

图6-2 磁盘资源汇总

6.2.3 内存资源(MEM )

内存资源主要有两项指标:实际剩余内存百分比(Real Free %),实际内存总体大小(Real total(MB))。通过这两个指标,可以知道内存的使用情况。下图为内存资源图。

图6-3 内存资源

7 网络监控器图

7.1 “网络延迟时间”图(Network Delay Time)

在使用“网络延迟时间”图前,需要添加要监控的路径。

例如需要监控数据库服务器和Vuser Load Generator 之间的网络延迟时间,在Controller 的“网络延迟时间”图 - 点击右键,选择“Add Measurements” - 在Network Delay Time对话框的“Monitor the network delay from machine:”区域点击“Add ” – 输入数据库服务器的IP 地址 – 在“To machine(s):”区域点击“Add ” – 输入Vuser Load Generator(即负载机)的IP 地址 – 点击“OK ”,即可监控数据库服务器和Vuser Load Generator 之间的网络延迟时间。

下图将网络延迟显示为场景已用时间的函数。图中显示,在场景开始后的第 8 分钟, 有 16 毫秒的延迟。

图7-1 “网络延迟时间”图

也可以通过“网络子路径时间”图、“网络段延迟”图来查看某网络段的延迟时间。 为了验证网络瓶颈,可以合并多个图来确定瓶颈是否由网络引起。例如,使用“网络延迟时间”和“运行 Vuser”图可以确定Vuser 的数目如何影响网络延迟。“网络延迟时间”图显示负载测试场景运行期间的网络延迟。“运行 Vuser”图显示正在运行的Vuser 数目。

在下面的合并图中,将网络延迟与正在运行的 Vuser 数目进行了对比。此图显示,当 10 个 Vuser 全部运行时,出现了22毫秒的网络延迟,暗示网络可能已超载。

图7-2 “网络延迟时间-运行Vuser ”图

8 数据库服务器资源图

8.1 Oracle服务器监控度量

使用LoadRunner 监控Oracle 服务器需要设置Oracle 监控环境,具体请参与LR11的用户操作手册《HP LoadRunner Controller User Guide》如何设置 Oracle 监控环境章节,或参考《研发-orcal 数据库监控配置》。

监控 Oracle 服务器时最常使用以下度量(来自 V$SYSSTAT 表):

8.1.1 添加Oracle 自定义计数器

LR 自带的计数器,有时候不足以满足监控的需求,故需要手动添加自定义的Oracle 计数器。 添加步骤如下:

1) 在LR 的安装目录“\HP\LoadRunner\dat\monitors”下找到文件“vmon.cfg ” 2) 打开该文件“vmon.cfg ”,找到第三行“CustomCounters=xx”(其中xx 为目前已定义

的自定义计数器个数),把自定义计数器个数“xx ”改为(原个数+本次添加的个数)总和

3) 在该文件“vmon.cfg ”中以下面格式插入相应的计数器定义说明:

;[Custom0]

;Name must be unique ;Name=Five Hundred

;Description=This counter always returns 500. ;Query=SELECT 500 FROM DUAL ;IsRate=0

其中,“[Custom0]”的序号 “0”应改为相应的序号(序号必须由“0”开始连续加1递

增,如0,1,2…;若本来已有自定义计数器,由序号由原有序号开始递增。)

下面为增加的12个计数器:

[Custom0]

;Name must be unique

Name=库快存命中率

Description=命中率应大于0.9

Query=SELECT 100*((sum(pins-reloads))/sum(pins)) from v$librarycache IsRate=0

[Custom1]

;Name must be unique Name=高速缓存区命中率 Description=命中率应大于0.9 Query=SELECT round(1-SUM(PHYSICAL_READS)/(SUM(DB_BLOCK_GETS) + SUM(CONSISTENT_GETS)), 4) * 100 FROM (SELECT CASE WHEN NAME='physical reads' THEN VALUE END PHYSICAL_READS,CASE WHEN NAME = 'db block gets' THEN VALUE END DB_BLOCK_GETS,CASE WHEN NAME = 'consistent gets' THEN VALUE END CONSISTENT_GETS FROM V$SYSSTAT WHERE Name IN ('physical reads','db block gets','consistent gets')) IsRate=0

[Custom2]

;Name must be unique

Name=共享区库缓存区命中率 Description=命中率应大于0.99

Query=Select round(sum(pins-reloads)/sum(pins) * 100, 2) from v$librarycache IsRate=0

[Custom3]

;Name must be unique

Name=共享区字典缓存区命中率 Description=命中率应大于0.85

Query=Select round(sum(gets-getmisses-usage-fixed)/sum(gets) * 100, 2) from v$rowcache IsRate=0

[Custom4]

;Name must be unique Name=检测回滚段的争用 Description=应该小于1%

Query=select round(sum(waits)/sum(gets) * 100, 2) from v$rollstat IsRate=0

[Custom5]

;Name must be unique

Name=检测回滚段收缩次数

Description=应该

Query=select sum(shrinks) from v$rollstat, v$rollname where v$rollstat.usn = v$rollname.usn IsRate=0

[Custom6]

;Name must be unique

Name=监控表空间的I/O读总数 Description=监控表空间的I/O

Query=select sum(f.phyrds) pyr from v$filestat f, dba_data_files df where f.file# = df.file_id IsRate=0

[Custom7]

;Name must be unique

Name=监控表空间的I/O块读总数 Description=监控表空间的I/O

Query=select sum(f.phyblkrd) pbr from v$filestat f, dba_data_files df where f.file# = df.file_id IsRate=0

[Custom8]

;Name must be unique

Name=监控表空间的I/O写总数 Description=监控表空间的I/O

Query=select sum(f.phywrts) pyw from v$filestat f, dba_data_files df where f.file# = df.file_id IsRate=0

[Custom9]

;Name must be unique

Name=监控SGA 中重做日志缓存区的命中率 Description=应小于1% Query=select

Decode(immediate_gets+immediate_misses,0,0,immediate_misses/(immediate_gets+immediate_misses)*100) ratio2 FROM v$latch WHERE name IN ('redo copy') IsRate=0

[Custom10]

;Name must be unique

Name=监控内存和硬盘的排序比率 Description=应小于10%

Query=select round(sum(case when name='sorts (disk)'then value else 0 end)/sum(case when name='sorts (memory)' then value else 0 end)*100,2) from (select name,value from v$sysstat where name in ('sorts (memory)','sorts (disk)')) IsRate=0

[Custom11]

;Name must be unique

Name=内存排序命中率 Description=应大于95%

Query=select round((100*b.value)/decode((a.value+b.value), 0, 1, (a.value+b.value)), 2)from v$sysstat a, v$sysstat b where a.name='sorts (disk)' and b.name='sorts (memory)' IsRate=0

4) 编辑该文件后,需要重启LR 的控制器,才能在监控Oracle 服务器时在“CUSTOM ”下

添加这些自定义的计数器。

指标说明:

8.1.2 性能分析工具Statspack 所提供的性能分析指标

注:以下指标取自Oracle 的性能分析工具Statspack 所提供的性能分析指标。

8.2 SQL Server服务器监控度量


相关文章

  • 性能测试工程师面试题
  • 1.什么是负载测试?什么是性能测试? 负载测试:通过被测试系统不断增加压力,直到性能指标超过预期值或者某种资源达到饱和状态. 经过这两天查看相关的资料,而且还和同事讨论.得出以下总结: 1)共同点:两种测试都是量的测试. 2)区别:压力测试 ...查看


  • 什么是兼容性测试
  • 1.什么是兼容性测试? 兼容性测试侧重哪些方面? 参考答案: 兼容测试主要是检查软件在不同的硬件平台.软件平台上是否可以正常的运行,即是通常说的软件的可移植性. 兼容的类型,如果细分的话,有平台的兼容,网络兼容,数据库兼容,以及数据格式的兼 ...查看


  • 5类软件测试工具
  • 目前主流的测试工具主要有以下5类: 1.负载压力测试工具 这类测试工具的主要目的是度量应用系统的可扩展性和性能,是一种预测系统行为和性能的自动化测试工具.在实施并发负载过程中,通过实时性能监测来确认和查找问题,并针对所发现问题对系统性能进行 ...查看


  • 北京软件测试培训机构哪个好
  • 精品课程 全程面授 软件测试教程从入门到精通 近来,软件测试行业发展迅速,企业越来越重视测试了.越来越多的人加入了测试大军中,很多人也想通过自学来学习软件测试技术加入这个行业,但是现在软件测试的书籍越来越多,也良莠不齐,而且软件测试涉及的技 ...查看


  • 软件测试基础教程
  • 软件测试 一.概念 软件测试就是利用测试工具按照测试方案和流程对产品进行功能和性能测试,甚至根据需要编写不同的测试工具,设计和维护测试系统,对测试方案可能出现的问题进行分析和评估. 二.目的 检验软件是否满足规定的需求或弄清预期结果与实际结 ...查看


  • 性能测试报告
  • 性能测试报告 xxxx 有限公司 xxxx 年xxxx 月 版 本 记 录 目 录 第1章 系统概述 ..................................................................... ...查看


  • 常见的测试用例设计方法都有哪些?
  • 常见的测试用例设计方法都有哪些?请分别以具体的例子来说明这些方法在测试用例设计工作中的应 用. 1. 等价类划分 常见的软件测试面试题划分等价类 : 等价类是指某个输入域的子集合 . 在该子集合中 , 各个输入数 据对于揭露程序中的错误都是 ...查看


  • 软件测试技术基础课后习题答案
  • 目 录 第1章 软件测试概述.......................................................................................................... ...查看


  • 软件测试理论
  • 1.软件生命周期模型 从概念提出的那一刻开始,软件产品就进入了软件生命周期.在经历需求.分析.设计.实现.部署后,软件将被使用并进入维护阶段,直到最后由于缺少维护费用而逐渐消亡.这样的一个过程,称为"生命周期模型"(Li ...查看


热门内容