17
3 LoadRunner Controller 实战 结束了 LoadRunner 学习的第一个里程碑,小白马不停蹄地开始了第二个里程碑的学习, 那就是 LoadRunner Controller 组件。 3.1 Controller 介绍 Controller 可谓是 LoadRunner 的“心脏”,承担着多种工作任务。最常见的就是场景的 设计、压力机的部署、脚本调度、监控以及数据收集。 Controller 的工作原理是,通过场景设计来模拟用户的真实操作并调用 VuGen 中的脚本, 再通过设置的压力机产生压力。在场景运行过程中,Controller 可以收集虚拟用户执行情况、 事务响应时间、吞吐量、各个服务器资源以及各个应用资源的信息并实时显示,帮助测试人 员分析。 Controller 的启动有两种方式:可以从开始菜单下的 HP LoadRunner Applications Contr oller 启动,也可以从 VuGen 中选择 Tools Create Controller Scenario 命令后创建。 接下来就和小白一起看看这个神秘的“心脏”吧! 3.2 场景设计实战 Controller 可以完成多种场景设计,如快增长、慢增长、组模式等,基本可以满足日常 的性能测试场景需求。启动 Controller 后的新建场景界面如图 3-1 所示。 Chapter 3

LoadRunner Controller 实战images.china-pub.com/ebook3770001-3775000/3770901/ch03.pdf第3章 LoadRunner Controller实战 55 2)Available Scripts:当前可以使用的脚本。如果没有想要的脚本,可以单击Browse

  • Upload
    others

  • View
    130

  • Download
    0

Embed Size (px)

Citation preview

Page 1: LoadRunner Controller 实战images.china-pub.com/ebook3770001-3775000/3770901/ch03.pdf第3章 LoadRunner Controller实战 55 2)Available Scripts:当前可以使用的脚本。如果没有想要的脚本,可以单击Browse

第3章 LoadRunner Controller实战   53

第 3 章

LoadRunner Controller 实战

结束了 LoadRunner 学习的第一个里程碑,小白马不停蹄地开始了第二个里程碑的学习,

那就是 LoadRunner 的 Controller 组件。

3.1 Controller 介绍

Controller 可谓是 LoadRunner 的“心脏”,承担着多种工作任务。最常见的就是场景的

设计、压力机的部署、脚本调度、监控以及数据收集。

Controller 的工作原理是,通过场景设计来模拟用户的真实操作并调用 VuGen 中的脚本,

再通过设置的压力机产生压力。在场景运行过程中,Controller 可以收集虚拟用户执行情况、

事务响应时间、吞吐量、各个服务器资源以及各个应用资源的信息并实时显示,帮助测试人

员分析。

Controller 的启动有两种方式:可以从开始菜单下的 HP LoadRunner → Applications → Controller 启动,也可以从 VuGen 中选择 Tools → Create Controller Scenario 命令后创建。

接下来就和小白一起看看这个神秘的“心脏”吧!

3.2 场景设计实战

Controller 可以完成多种场景设计,如快增长、慢增长、组模式等,基本可以满足日常

的性能测试场景需求。启动 Controller 后的新建场景界面如图 3-1 所示。

Chapter 3

Page 2: LoadRunner Controller 实战images.china-pub.com/ebook3770001-3775000/3770901/ch03.pdf第3章 LoadRunner Controller实战 55 2)Available Scripts:当前可以使用的脚本。如果没有想要的脚本,可以单击Browse

54   第一篇 初入职场

图 3-1 新建场景

下面解释图 3-1 中的主要选项。

1)Select Scenario Type :选择场景类型。根据需要,可以选择手工场景和基于目标的场

景。各子选项含义如下。

Manual Scenario :手工场景。就是手工指定场景如何运行,比较灵活,可以完成绝大

多数的场景需求。此处还有一个选项,是否使用百分比模式,一般情况下不勾选。

Goal-Oriented Scenario :基于目标的场景模式。就是要设定一个目标,然后达到这

个目标。例如,设定 Hits per Second 100,接着设定虚拟用户数的范围(这个是和

Manual Scenario 不同的地方),最后根据设置的时间运行,如果没有达到既定目标,

则可以选择停止运行或继续运行,如图 3-2 所示。

图 3-2 基于目标的场景

Page 3: LoadRunner Controller 实战images.china-pub.com/ebook3770001-3775000/3770901/ch03.pdf第3章 LoadRunner Controller实战 55 2)Available Scripts:当前可以使用的脚本。如果没有想要的脚本,可以单击Browse

第3章 LoadRunner Controller实战   55

2)Available Scripts :当前可以使用的脚本。如果没有想要的脚本,可以单击 Browse 按

钮选择。

3)Scripts in Scenario :当选中要加入场景的脚本后,单击 Add 按钮,即可把脚本加入

场景并在该列中显示。

此处小白选择了最常用的手工场景,并将之前练习的脚本加入场景,详细学习

Controller。

3.2.1 集合点实战

下面将从什么是集合点、如何启用集合点和集合点的应用策略方面进行讲解。

1. 理解集合点

集合点是什么呢?仍以前面的跑步为例。所谓集合点,就是 10 名运动员从起点出发,

要跑 3 圈,规定再次经过起点时要等待所有运动员全部到达后,才能进行第 2 圈的赛跑。集

合点就是这个道理,它的意义在于最大程度地模拟并发。

注意

集合点并不能模拟真正意义上的并发,因为即使是通过集合点的虚拟用户,但由于网络等多种

因素的影响并不能同一时刻到达服务器,仍有先后差异。

2. 启用集合点

在 LoadRunner 中启用集合点需要在编写脚本时加入,集

合点函数为 lr_rendezvous(" 集合点名称 ");。只需把集合点

函数放到脚本的某个事务或操作之前即可。只有完成这步

操作后,才能在 Controller 中启用集合点,方法为依次单击

Insert → Rendezvous 菜单项,如图 3-3 所示。

图 3-3 集合点

提示

集合点不要添加到事务中,要放到事务外,否则事务的统计会

把集合点的等待时间也统计进去。

3. 集合点策略

经过上面的操作就可以进入集合点策略设置界面,如图 3-4 所示。

图 3-4 中主要选项含义如下。

1)Rendezvous:集合点的列表,可通过下方的 Disable Rendezvous 按钮来启用或关闭。

2)Scripts:当前脚本的名称。

3)Vuser:当前设置的并发用户数,可通过下方的 Disable VUser 按钮来启用或关闭虚拟

用户。

Page 4: LoadRunner Controller 实战images.china-pub.com/ebook3770001-3775000/3770901/ch03.pdf第3章 LoadRunner Controller实战 55 2)Available Scripts:当前可以使用的脚本。如果没有想要的脚本,可以单击Browse

56   第一篇 初入职场

4)Policy(集合点策略):单击后进入策略设置对话框,如图 3-5 所示。

图 3-4 集合点 图 3-5 集合点策略

图 3-5 中显示了常见的 3 种策略,其含义如下。

当所有用户的 X% 到达集合点时释放。

当所有正在运行的用户的 X% 到达集合点时释放。

当 X 个用户达到集合点时释放。

超时设置。表示等待用户超时的设定,如果在 X 秒内还没有满足要求的用户到达,

则释放集合点。

到这里小白并没有停止思考,而是想到了以跑步为例再次理解集合点的 3 种策略。假设

有 100 个运动员跑步,设置的集合点策略百分比均为 100%,但这 100 个运动员并不是一开

始就共同跑的,而是每隔 1min 加入 10 个运动员,即 10min 后才有 100 个运动员在跑步。这

里 100 就是所有运动员数,而不同时间正在跑的运动员数量是不同的。对应到图 3-5 中,从

上至下的策略(policy)作用如下。

第一个策略:是指当全部运动员都运行到了集合点函数时才释放。

第二个策略:是指当前时间如果只有 10 个运动员在跑步,那么只要这 10 个运动员都运

行到了集合点函数就释放。

第三个策略:当到达集合点的运动员数达到设置的数量后就释放。

这下小白可算真正理解了集合点的含义以及策略的精髓了。

3.2.2 IP 欺骗实战

下面将从以下几个方面来讲解 IP 欺骗的实践。

1. 理解 IP 欺骗

看到这个搞笑的命名小白心里一乐,这功能看着貌似很好玩。IP 欺骗就是使不同用户有

Page 5: LoadRunner Controller 实战images.china-pub.com/ebook3770001-3775000/3770901/ch03.pdf第3章 LoadRunner Controller实战 55 2)Available Scripts:当前可以使用的脚本。如果没有想要的脚本,可以单击Browse

第3章 LoadRunner Controller实战   57

不同 IP 地址,这样最真实地模拟了现实场景。但有一点必须明白,对于一般系统而言,是否

使用 IP 欺骗并不会影响性能测试。只有在特殊的要求下才会使用,如下面两种情况。

1)某系统限制了同一个 IP 用户在短时间内对系统进行恶意或大量的请求访问。

2)负载均衡策略是根据 IP 规则分配的。

2. 启用 IP 欺骗

想要启用 IP 欺骗需要做一项前置工作,就是本地的 IP 地址不能设置为“自动获取”,必

须指定一个静态 IP 地址,否则会弹出如图 3-6 所示的提示。

静态 IP 地址指定好之后就可以设置 IP 欺骗了,步骤如下。

1)依次单击 HP LoadRunner → Tools → IP Wizard 进入设置对话框,如图 3-7 所示。

图 3-6 IP 欺骗设置提示 图 3-7 设置 IP 欺骗(1)

2)选择 Create new setting,单击“下一步”按钮,出现如图 3-8 所示界面。

3)输入服务器的 IP 地址,或者留空也可以,单击“下一步”按钮,出现如图 3-9 所示

界面。

图 3-8 设置 IP 欺骗(2) 图 3-9 设置 IP 欺骗(3)

4)单击 Add 按钮,弹出添加 IP 的对话框,如图 3-10 所示。

5)修改 From IP 为 192.168.3.9,Number to add 为 5,单击 OK 按钮,出现如图 3-11 所

示界面。

Page 6: LoadRunner Controller 实战images.china-pub.com/ebook3770001-3775000/3770901/ch03.pdf第3章 LoadRunner Controller实战 55 2)Available Scripts:当前可以使用的脚本。如果没有想要的脚本,可以单击Browse

58   第一篇 初入职场

图 3-10 设置 IP 欺骗(4) 图 3-11 设置 IP 欺骗(5)

6)单击“完成”按钮,出现如图 3-12 所示

界面。

图 3-12 设置 IP 欺骗(6)

7)单击“ Save as”按钮可以将本次增加

的 IP 地址保存成 .ips 文件,下次再使用时就

可以直接选择此文件了。单击 OK 按钮后完成

设置。

8)进入 Controller 中,选择 Scenario → Enable IP Spoofer,完成 IP 欺骗设置的全部操作。

如果想验证结果,那么可以在 VuGen 中编

写代码(参见代码清单 3-1),然后运行即可。

代码清单 3-1 获得 IP 地址

Action(){char *ip;ip = lr_get_vuser_ip();if( ip )lr_output_message("IP 地址为 %s" , ip);elselr_output_message("IP 欺骗不可用 ");return 0;}

3. 释放 IP 欺骗

IP 欺骗使用完成后千万别忘了释放,做事情一定要有头有尾,这样才完整。释放的操作

十分简单,重复图 3-9 ~图 3-12 所示的操作,并在图 3-9 中,单击 Remove 按钮,移除后再

单击“完成”按钮即可。最后别忘了重启计算机,这样就完成了 IP 的释放。

Page 7: LoadRunner Controller 实战images.china-pub.com/ebook3770001-3775000/3770901/ch03.pdf第3章 LoadRunner Controller实战 55 2)Available Scripts:当前可以使用的脚本。如果没有想要的脚本,可以单击Browse

第3章 LoadRunner Controller实战   59

3.2.3 添加 Windows 和 Linux 压力机实战

既然 Controller 是 LoadRunner 的“心脏”,那么压力产生也必然是它发起的,通过压力

机来对被测系统产生压力。一般压力机分为 Windows 和 Linux。当并发量比较大时建议使用

Linux。

1. 添加 Windows 压力机

添加 Windows 压力机的步骤相对来说简单些,具体如下。

1)保证要添加的压力机上安装了 LoadRunner Agent,并启用(状态栏中会有一个小

卫星)。

2)添加的压力机与 Controller 所在机器要在同一个网段,建议把防火墙关闭。

3)本地系统的 RPC 服务要开启(在“控制面板”→“管理工具”→“服务”中开启,

建议改为自启动)。

4)之后从 Controller 所在的机器上登录到压力机,验证是否可以连通。单击 Windows系统的“开始”菜单,选择“运行”,在弹出的对话框中输入“\\ 机器名”,如果不报错则成功。

注意 建议关闭360等各类管理软件、杀毒软件,同时要拥有足够的权限。

5)进入 Controller,依次单击 Scenario → Load Generators 菜单项,出现如图 3-13 所示

界面,默认会有一台压力机,即本机。

6)如果想添加其他压力机,单击 Add 按钮,出现如图 3-14 所示界面。

图 3-13 压力机 图 3-14 添加压力机

图 3-14 中各选项的含义如下。

Name:这里很多人都会输入机器的名称,其实应该输入压力机的 IP 地址。

Platform:默认为 Windows 即可。

7)单击 OK 按钮,完成压力机的添加,然后单击图 3-13 右侧的 Connect 按钮,可以测

试能否连通,如果连通,则会显示 Ready 状态。

8)最后可以把压力机分到对应的脚本上,如图 3-15 所示。

Page 8: LoadRunner Controller 实战images.china-pub.com/ebook3770001-3775000/3770901/ch03.pdf第3章 LoadRunner Controller实战 55 2)Available Scripts:当前可以使用的脚本。如果没有想要的脚本,可以单击Browse

60   第一篇 初入职场

图 3-15 分配压力机

2. 添加 Linux 压力机

添加 Linux 压力机稍微复杂些,需要有一定的 Linux 基础,还好小白平时也经常使用

Linux,所以心里松了一口气。添加步骤如下。

1)到 HP 官网下载 HP_LoadGenerator,解压到本地后上传到 Linux 中,文件名为

Linux。2)在控制台输入 chmod -R +x Linux/* 命令,用于修改文件的权限。

3)在控制台输入 cd Linux 命令,进入 Linux 目录。

4)在控制台输入 ./installer.sh 命令,进行安装,按照提示操作即可。

5)在控制台输入 useradd -g 0 -s /bin/bash besttest 命令,用于新增一个名为 besttest 的用户。

6)在控制台输入 vi /root/.bashrc 命令,用于编辑 .bashrc 文件,添加如下内容。

export PRODUCT_DIR=/opt/HP/HP_LoadGenerator export M_LROOT=$PRODUCT_DIR export LD_LIBRARY_PATH=${M_LROOT}/bin export PATH=${M_LROOT}/bin:$PATH

7)在控制台输入 su - besttest 命令,切换为 besttest 用户。

8)在控制台输入 cd /opt/HP/HP_LoadGenerator/bin/ 命令,用于进入安装后的默认目

录中。

9)在控制台输入 ./verify_generator命令,用于验证配置是否正确。

10)在控制台输入 m_daemon_setup start 命令,用于启动服务,如果成功,则

会显示类似下面的提示。

m_agent_daemon ( 22914 )

11) 回 到 Controller 里 重 复 添 加

Windows 压力机的步骤即可。这里需要注

意的是,有一点和添加 Windows 压力机

不同,如图 3-16 所示,要勾选 Don’t use RSH 复选框。

图 3-16 添加 Linux 压力机

Page 9: LoadRunner Controller 实战images.china-pub.com/ebook3770001-3775000/3770901/ch03.pdf第3章 LoadRunner Controller实战 55 2)Available Scripts:当前可以使用的脚本。如果没有想要的脚本,可以单击Browse

第3章 LoadRunner Controller实战   61

3.2.4 场景设计实战

场景设计其实就是设置场景的加压方式、运行时间、减压方式等。场景设计并没有好坏

之分,因为目的不同,场景就有可能不同,小白学习了如下几种常见的场景设计模型。

1. 快增长

快增长的意思就是压力在瞬间启动并达到最大。设置方法为在 Controller 中的 Schedule区域分别双击 Start Vusers 和 Stop Vusers,然后选择 Simultaneously,单击 OK 按钮即可,如

图 3-17 所示。

图 3-17 快增长

这样的设置在场景中运行,会瞬间启动 20 个虚拟用户,持续 5min 后,瞬间停止这 20个虚拟用户。

2. 慢增长

慢增长的意思就是压力按照设定的规则慢慢增加,当到达设置点后持续运行一段时间,

然后慢慢减压。设置方法同快增长,如图 3-18 所示。

图 3-18 慢增长

这样的设置在场景中运行,会以每分钟增加 5 个虚拟用户的策略增长,当达到 20 个虚

拟用户后,持续运行 5min,然后再以每分钟停止 5 个虚拟用户的策略结束。

3. 指定运行次数

这里的运行次数是以虚拟用户数来判断的。例如,如果虚拟用户数是 10,选择此种场景

Page 10: LoadRunner Controller 实战images.china-pub.com/ebook3770001-3775000/3770901/ch03.pdf第3章 LoadRunner Controller实战 55 2)Available Scripts:当前可以使用的脚本。如果没有想要的脚本,可以单击Browse

62   第一篇 初入职场

策略,则场景运行完 10 个虚拟用户数后自动结束。双击 Duration 并选中 Run until completion即可,如图 3-19 所示。

图 3-19 指定运行次数

提示

如果对测试数据没有特别的要求,完全可以利用“指定运行次数”这样的场景策略来制造测试

数据。

4. 组模式

组模式也比较容易理解,仍然以 BestTest 论坛为例。一些水军经常会注册登录论坛,然

后发一些垃圾帖子,管理员要删除这些帖子。对于这样有先后顺序的场景选用组模式。

组模式中的策略有 3 种,分别如下。

1)在场景开始时启动执行。

2)在场景执行一段时间后开始运行。

3)当某个脚本完成后再运行选定的脚本。

3.3 场景监控实战

场景的设计学完后,接下来学习场景的监控,这是很重要的,在学习如下内容的同时要

回顾 1.3 节中的知识。

3.3.1 监控信息概览与自定义脚本

上面学习的都是 Controller 的 Desgin 界面中的内容,下面学习 Run 界面中的内容,这里

主要完成场景的实时监控。

1. 虚拟用户数的监控与增加

首先观察左侧的 Groups 区域,如图 3-20 所示。

此处显示的是虚拟用户的状态,可显示出虚拟用户从准备、初始化、运行到停止的所有

状态过程,同时能统计出成功、失败以及集合点处的虚拟用户数。

Page 11: LoadRunner Controller 实战images.china-pub.com/ebook3770001-3775000/3770901/ch03.pdf第3章 LoadRunner Controller实战 55 2)Available Scripts:当前可以使用的脚本。如果没有想要的脚本,可以单击Browse

第3章 LoadRunner Controller实战   63

图 3-20 Groups 区域

这时候小白脑袋中出现一个疑问:如果我想在运行过程中增加虚拟用户该怎么操作呢?

其实很简单,单击中间区域中的 Vusers 按钮,弹出 Vusers 对话框,如图 3-21 所示。

图 3-21 Vusers 对话框

单击 AddVuser 按钮,弹出 Add Vusers 对话框,如图 3-22 所示。

修改图 3-22 中的 Quantity to add 值后单击 OK 按钮即可完成。需要注意的是,到此步骤

虽然完成了添加,但并没有运行新加的虚拟用户,如果想运行新加的虚拟用户,则需要返回 Run 标签的 Groups 区域进行操作,如图 3-23 所示。可单击 Run Vusers 按钮,一次性运行所

有新添加的虚拟用户,也可以单击 Run One Vuser 按钮来一个个运行新添加的虚拟用户。

图 3-22 Add Vusers 对话框 图 3-23 运行新加的虚拟用户

2. 场景运行状态监控

右侧区域是场景运行状态的概览,可以看到当前虚拟用户数、执行时间、最后 60s 的点

击率、通过事务数、失败事务数以及错误信息,如图 3-24 所示。

其中需要重点关注的是事务数以及错误信息,在这里可以清晰地看到事务数的变化,方

Page 12: LoadRunner Controller 实战images.china-pub.com/ebook3770001-3775000/3770901/ch03.pdf第3章 LoadRunner Controller实战 55 2)Available Scripts:当前可以使用的脚本。如果没有想要的脚本,可以单击Browse

64   第一篇 初入职场

便快速判断。如果存在多个事务,则可以单击后面的放大镜按钮,查看到详细的列表信息,

如图 3-25 所示。如果场景中有错误出现,也可以通过 Errors 查看具体的错误信息,这也是后

续分析时重要的参考数据。

图 3-24 场景运行状态概览 图 3-25 事务详细列表

3. 利用脚本自定义显示信息

可以通过编写脚本来自定义监控信息,此处以监控虚拟用户状态信息为例,示例代码清

单 3-2 所示。

代码清单 3-2 自定义监控

static int iteration;Action(){ // 在 Vugen 中显示参数值,参数化 param lr_output_message(" 当前参数 :%s",lr_eval_string("{param}")); lr_think_time(10); // 在 Controller 监视窗口中显示当前参数值和当前值的迭代次数 lr_vuser_status_message(" 当前参数 :%s, 迭代次数:%d",lr_eval_string("{param}"),++iteration); return 0;}

代码清单 3-2 在 Controller 中的运行效果如图 3-26 所示。

图 3-26 自定义监控

Page 13: LoadRunner Controller 实战images.china-pub.com/ebook3770001-3775000/3770901/ch03.pdf第3章 LoadRunner Controller实战 55 2)Available Scripts:当前可以使用的脚本。如果没有想要的脚本,可以单击Browse

第3章 LoadRunner Controller实战   65

3.3.2 Windows 和 Linux 的监控以及指标讲解

下方区域是指标监控区,一般都会在此处观察监控指标的变化,如图 3-27 所示。

图 3-27 监控指标

左侧的 Available Graphs 是可用的各类指标,如操作系统(Windows、Linux、UNIX等)、Web 服务器(IIS、Apache、Weblogic、Websphere 等)、数据库(SQL Server、Oracle、Sybase、DB2 等)。

1. 图表的布局调整与监控

想监控某个指标,只需把左侧列表中的指标拖到右侧区域即可。小白在实际操作中发现

只有非灰色的指标才可以监控,灰色的指标在当前场景下不可用。用鼠标右键单击图表可以

调整该区域图表布局,如图 3-28 所示,可以展现 1 幅图、2 幅图、4 幅图、8 幅图以及自定义。

图 3-28 图表布局调整

2. Windows 的监控

目前主流的服务器操作系统无非就是 Windows 系列和 Linux 系列,那么掌握监控这两类

流行系统必然是十分重要的。

首先,来看如何监控 Windows,步骤如下。

Page 14: LoadRunner Controller 实战images.china-pub.com/ebook3770001-3775000/3770901/ch03.pdf第3章 LoadRunner Controller实战 55 2)Available Scripts:当前可以使用的脚本。如果没有想要的脚本,可以单击Browse

66   第一篇 初入职场

1)被监控的 Windows 机器需要开启 Remote Procedure Call(RPC)和 Remote Registry Service 服务。

2)拥有管理员访问权限。

3)设置安全策略为经典(在运行框中输入 secpol.msc,出现安全策略设置对话框,依次

单击“本地安全策略”→“安全选项”,然后找到网络访问中的“本地账户的共享和安全模式”,

将其修改为“经典”即可)。

4)在 Controller 中的 Windows 上单击鼠标右键,选择 Add Measurements,出现 Windows Resources 对话框,然后单击对话框中的 Add 按钮,出现 Add Machine 对话框,如图 3-29所示。

5)在 Name 处输入被监控机器的 IP 地址。

6)Platform 值保持默认即可。

7)单击 OK 按钮,可以看到下方列出可监控的指标,如图 3-30 所示。

图 3-29 添加机器 图 3-30 监控指标

注意

监控指标的种类很多,不需要全部监控,一般只选择关键性指标监控,因为监控得越多,对机

器的额外压力也就越大。

3. Windows 性能指标讲解

Windows 中的计数器非常多,但不需要全部掌握,只需对重要监控指标进行学习总结即

可,如表 3-1 所示。

Page 15: LoadRunner Controller 实战images.china-pub.com/ebook3770001-3775000/3770901/ch03.pdf第3章 LoadRunner Controller实战 55 2)Available Scripts:当前可以使用的脚本。如果没有想要的脚本,可以单击Browse

第3章 LoadRunner Controller实战   67

表 3-1 Windows 重要监控指标

Object(对象) Counters(计数器) 含义以及判断技巧

Memory(内存)

Available Mbytes 可用的物理内存数。至少要有 10% 的物理内存值

Page/secPages Read/sec

Page/sec 是为解析硬件页面错误从磁盘读取或写入磁盘的页数。该值不宜超过 20,如果服务器没有足够的内存处理,此值会比较高。 Pages Read/sec 是由于硬页错误而读取磁盘的次数。一

般阈值为 5,如果该值一直持续较大,则表示很多是从磁盘读,可能内存不足。

这些值如果比较高,可能是由服务器的内存短缺引起的,也可能是缓存设置太大导致

Cache Bytes文件缓存系统,默认为 50% 的可用物理内存。IIS 运行

内存不够时,会自动整理缓存

Processor(处理器)

%Processor Time处理器的消耗时间,此值的最佳范围为 75% ~ 95%。如

果持续高于 95 %,则有可能是处理器出现瓶颈,需要添加或更换一个更好的

%Idle Time 处理器的空闲时间。该值太小说明资源可能没有被充分利用

%User Time非系统操作所消耗的时间。如果存在复杂算法或大量计

算可能会导致该值较高

%Interrupt Time

中断操作所消耗的时间,如鼠标、磁盘驱动器、网卡和其他外部设备,这些设备通常都会中断处理器。如果该计数器和 Processor Time 同一时间都比较高(超过 80%),那么很可能是硬件问题

Physical Disk(物理磁盘)

%Disk Time

磁盘操作所占用的时间。此值过大表示耗费太多时间来访问磁盘,可考虑增加内存、换更快的硬盘、优化读写数据的算法等。如果持续走高,而 CPU 与网络并没有饱和,则可能存在内存泄露

Average Disk Queue Length读取请求的平均队列长度。一般小于 0.5,此值过大表示

磁盘 I/O 太慢,要换更快的硬盘

Process(进程) Private Bytes

是当前进程专用的,无法与其他进程共享。可以认为它是进程对物理内存的消耗,且该指标相对来说更加稳定。在程序产生内存泄露时,该值一定是不断上涨的。所以一般更倾向于使用 Private Bytes 来定量进程的内存消耗和分析进程的内存泄露

Network Interface(网络)

Bytes Total/sec每秒发送和接收的字节数,可判断网络是否达到饱和。

该值和目前网络带宽相除的结果应该小于 50%

Output Queue Length输出队列长度。输出队列越长,延时处理输出的数据请

求就越多

System(系统) Processor Queue Length等待处理器处理的线程排队长度,不包括当前正在处理

的。如果该值持续超过处理器的总数量加 1(一般为 2),则有可能处理器出现了堵塞

4. Linux 的监控

Linux 的监控稍微复杂一点,需要先在被监控的 Linux 上安装 RPC 服务。步骤如下。

Page 16: LoadRunner Controller 实战images.china-pub.com/ebook3770001-3775000/3770901/ch03.pdf第3章 LoadRunner Controller实战 55 2)Available Scripts:当前可以使用的脚本。如果没有想要的脚本,可以单击Browse

68   第一篇 初入职场

1)下载 RPC 安装包并在 Linux 中安装。

2)安装完成后使用 rpc.rstatd 命令启动。

3)回到 Controller 中,将 Systeme Resourece Graphs 中的 UNIX Resources 拖到右侧的资

源监控区域。

4)单击鼠标右键,选择 Add Measurements,添加被监控 Linux 的 IP 地址后,再选择要

监控的指标即可。具体操作步骤与添加 Windows 的监控类似。

5)完成后等待一小段时间便会看到数据,如图 3-31 所示。

图 3-31 Linux 监控

注意

如果经过上面的步骤还是无法监控成功,则可以关闭Linux的防火墙之后再试。另外,如果出

现监控过程中突然无法监控到数据,则可能是Linux自动关闭了RPC服务造成的,所以需要再启

动,为了避免这样的情况建议把采样时间设置得长一点。

5. Linux 性能指标讲解

Linux 中的计数器非常多,也不需要全部掌握,只需学习总结重要监控指标即可,如

表 3-2 所示。

表 3-2 Linux 重要指标

指标名称 含义以及判断技巧

Swap-in/out rate 进程与交换分区的交换率。如果比较频繁,可能内存资源的使用比较紧张

System mode CPU Utilization 系统操作所占用的 CPU

User mode CPU Utilization 用户操作所占用的 CPU

Average Load平均负载。指一段时间内 CPU 正在处理及等待 CPU 处理的进程数之和的

统计信息。一般情况下,Load Average < CPU 数 × 核数 ×0.7 为佳

Context switch rate 上下文切换率。减少切换率能有效提升系统响应速度

Paging rate内存页交换率。如果该值偶尔走高,可能当时有线程竞争内存。如果持续

走高,则内存可能是瓶颈

Page 17: LoadRunner Controller 实战images.china-pub.com/ebook3770001-3775000/3770901/ch03.pdf第3章 LoadRunner Controller实战 55 2)Available Scripts:当前可以使用的脚本。如果没有想要的脚本,可以单击Browse

第3章 LoadRunner Controller实战   69

指标名称 含义以及判断技巧

Disk Traffi c 磁盘传输率

Incoming/Outgoing packets error rate 数据包接收 / 发送的错误率。该值较大会影响到响应时间

Collision Rate 冲突率。该值过高会使网络响应变慢

3.4 本章小结

通过这段时间的学习,小白已经掌握了 Controller 中的关键要领,从场景的设计到监控,

以及重要指标的分析都可以熟练完成,也算完成了第二个里程碑的学习,虽然心里很高兴,

但也感受到了压力,需要补充学习的知识太多了。

在本章的学习中,读者要注意灵活处理,很多东西并不是唯一的,没有对错之分,需要

根据自己实际业务灵活调整与试验,切勿死板。

下次小白将以实战方式学习 LoadRunner 的第三大组件 Aanlysis 并进行数据图表分析,

让我们一起期待吧。

(续)