使用WAS对Web应用程序压力测试解析.pdf
《使用WAS对Web应用程序压力测试解析.pdf》由会员分享,可在线阅读,更多相关《使用WAS对Web应用程序压力测试解析.pdf(27页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 使用 WAS 对 Web应用程序压力测试 WAS(Microsoft Web Application Stress Tool,Web 应用负载测试工具提供了一种简单的方法模拟大量用户来访问你的网站。这个工具能告诉我们你的 Web 应用程序工作时对硬件和软件的使用情况。在本文中我将告诉大家如何使用 WAS,以及如何理解 WAS 测试的数据。1 压力测试的必要性 随着服务器端处理任务的日益复杂以及网站访问量的迅速增长,服务器性能的优化也成了非常迫切的任务。在优化之前,最好能够测试一下不同条件下服务器的性能表现。找出性能瓶颈所在是设计性能改善方案之前的一个至关紧要的步骤。负载测试是任何 Web 应
2、用的开发周期中一个重要的步骤。如果你在构造一个为大量用户服务的应用,搞清楚你的产品配置能够承受多大的负载非常重要。如果你在构造一个小型的 Intranet 网站,测试能够暴露出最终会导致服务器崩溃的内存漏洞以及竞争情况。但是在实际的开发过程中,要按照实际投入运行的情况,组织成千上万的用户来进行压力测试,无论从那个方面看,都是不现实的。而且这样一旦发现了问题,不仅需要重复的进行这种耗费巨大的测试,而且问题不容易重现,不能方便的找出性能的瓶颈所在。而使用软件进行压力测试就不会存在这种情况。无论是哪种情形,花些时间对应用进行负载测试可以获得重要的基准性能数据,为未来的代码优化、硬件配置以及系统软件升
3、级带来方便。即使经费有限的开发组织也可以对它们的网站进行负载测试,因为 Microsoft 的压力测试工具 WAS 是可以免费下载的。2 WAS 概要介绍 为了有效的对 Web应用程序进行压力测试,Microsoft 发布了这个简单易用,功能强大的工具 WAS。WAS 要求 Windows NT 4.0 SP4 或者更高,或者 Windows 2000。为了对网站进行负载测试,WAS 可以通过一台或者多台客户机模拟大量用户的活动。WAS 支持身份验证、加密和 Cookies,也能够模拟各种浏览器类型和 Modem 速度,它的功能和性能可以与数万美元的产品相媲美。使用 WAS 时,为了更加接近真
4、实的进行压力测试,我们推荐运行 WAS的测试机和 Web Server分开。3 开始使用 WAS 要对网站进行负载测试首先必须创建 WAS 脚本模拟用户活动。我们可以用下面四种方法之一创建脚本:l 通过记录浏览器的活动 l 通过导入 IIS 日志 l 通过把 WAS 指向 Web 网站的内容 l 手工制作 在这里我们拿最常用的方法通过记录浏览器的活动来讲解。其他三种方法在后面将会提到。3.1 录制测试脚本 打开菜单,选择 Scripts|Create|Record 创建一个测试脚本 选取要记录的内容,有下面 3种 l Record delay between request:记录了请求之间的延
5、迟。由于用户实际上在浏览网站时,请求之间存在几秒甚至几分钟的延迟,这种录制方法在执行时会模仿用户之间的延迟发送请求,所以会是一个更加实际的测试。如果我们的目的是要发现 Web应用程序的承受极限,就不要选择该项;如果只是想模拟一个特定数量的用户场景,那么选择该项进行测试捕捉请求延迟。l Record browser cookies&Record the host header:只记录用户的会话,不记录延迟时间。一般情况下,我们不需要选择这两项,可以让 WAS 创建 cookies和 host header,就好像用户登陆你的网站一样。然而,如果你有网站的回归信息时(比如一个用户的主要特征信息或者
6、与一个永久性 cookies 相连的其他信息,在模拟一个新的用户登陆网站和进行必要的用户配置测试前,必须保证清除 cookies,如果 Web应用程序需要用户接受cookies,那么需要选中该选项。目前这个版本的 WAS软件对基于浏览器 IE 录制脚本的方式还不支持HTTP/SSL请求。一般情况下,只选择后二种会增加压力的强度。根据压力测试实际的情况,选择合适的选项,然后点“Next|Finish”,WAS会打开一个 IE窗口,在 IE 中输入要测试的站点地址,然后我们就可以按照实际的情况开始浏览站点了,浏览的同时也就是执行测试用例的过程。等测试用例执行完成后,切换到 WAS 窗口,点“Sto
7、p Recording:”按钮,停止录制脚本 WAS 回到了视图页面,在该页面中你可以看到在录制过程中 WAS 收集的每一个链接,而且还可以编辑 GET、POST 以及 HEAD信息。制作 WAS 脚本是相当简单的,不过要制作出模拟真实用户活动的脚本有点儿复杂。如果你已经有一个运行的 Web 网站,可以使用 Web 服务器的日志来确定 Web网站上的用户点击分布。如果你的应用还没有开始运行,那么只好根据经验作一些猜测了。3.2 负载参数设置 测试脚本录制完成后,下一步我们要作的就是配置运行脚本的负载选项,我们可以调整测试配置以便观察不同条件下的应用性能。3.2.1 Content Tree 由
8、于我们的 WAS 和 Web Server是分开的,所以这里我们不需要设置 3.2.2 Setting(设置 我们只要点击“Setting”就开始负载选项设置。1.ConCurrent Connections:Stress Level(threads 的数值决定了所有客户机创建的 Windows 的线程的数值。每一个线程创建多个 Socket 连接(具体多少 Socket 连接数取决于 Stress multiplier(sockets per thread,每个 Socket 连接就是一个并发的请求(request。下面这个公式表示了它们之间的关系:总的并发请求数=Stress Level*
9、Stress multiplier=总的 Socket 连接数 Stress Level 和 Stress multiplier 这二个项决定了访问服务器的并发连接的数量。Microsoft 建议不要选择超过 100的 Stress Level 值。如果要模拟的并发连接数量超过 100个,可以调整 Stress multiplier或使用多个客户机。在负载测试期间 WAS将通过 DCOM与其他客户机协调。2.Test Run Time:设定持续运行多长时间的测试。我们可以在这里设定让WAS持续运行多少天、多 少个小时、多少分钟、多少秒 3.Request Delay(in millisecon
10、ds:设定请求延迟时间的最大、最小值,当然我们也可以选择“Use random delay”使用随机的延迟时间。一般情况下,我们常常会浏览一页,发现一个链接后,我们点击它。即便对该网站熟悉的人,4.Suspend:WAS 允许设置 warmup(热身时间,一般可以设置为 1分钟。在warmup期间 WAS 开 始执行脚本,但不收集统计数据。warmup 时间给 MTS、数据库以及磁盘缓冲等一个机会来做准备工作。如果在warmup 时间内收集统计数据,这些操作的开销将影响性能测试结果。WAS 也允许设置 CoolDown 时间。在 WAS 执行的时间达到设定的 Test Run Time时,进入
11、 CoolDown Time,这时 WAS 并没有停止执行脚本,同样也不会收集统计数据。下图表示了它们的先后关系。WarmUp 不收集统计数据 Test Run Time 收集统计数据 CoolDown 不收集统计数据 5.Bandwith:设置页面提供的另外一个有用的功能是限制带宽(throttle bandwidth。带宽限制 功能能够为测试模拟出 Modem(14.k K,28.8 K,56 K、ISDN(64 K,128 K 以及 T1(1.54 M 的速度。使用带宽限制功能可以精确地预测出客户通过拨号网络或其他外部连接访 问 Web 服务器所感受的性能。6.Redirects、Thr
12、oughput、Name resolution:这几个选项一般情况下采用默认情况即可。选中 Follow HTTP redirects 选项将会支持重定向。选中 Throughput 中的两项,WAS 将会收集活动用户的 cookies,以及收集网站的统计数字。默认 情况下都会选中这两项,如果不选择,将会增加压力测试的强度。Name resolution 默认情况下没有选中。选中该选项,会让每一个客户测试机执行查询,只有在使用多个子网时才需要选中该项。(帮助原文:have each individual test client perform a lookup,this is useful w
13、hen using multiple subnets 3.2.3 Perf Counters(性能计数器 使用 WAS,从远程 Windows NT和 Windows 2000 机器获取和分析性能计数器(Performance Counter是很方便的。加入计数器要用到下图所示的 Perf Counters 分枝。一般情况下,这里需要添加的性能计数器有:1 Web Server:处理器:CPU 使用百分比(%CPU Utilization 内存:内存使用百分比(%Memory Utilization 线程:每秒的上下文切换次数(Context Switches Per Second(Total
14、 ASP:每秒请求数量(Requests Per Second ASP:请求执行时间(Request Execution Time ASP:请求等待时间(Request Wait Time ASP:置入队列的请求数量(Requests Queued 2 各个 WAS 测试机 处理器:CPU 使用百分比(%CPU Utilization 内存:内存使用百分比(%Memory Utilization 在测试中选择哪些计数器显然跟测试目的有关。虽然下面这个清单不可能精确地隔离出性能瓶颈所在,但对一般的 Web服务器性能测试来说却是一个好的开始。处理器:CPU 使用百分比(%CPU Utilizati
15、on 线程:每秒的上下文切换次数(Context Switches Per Second(Total ASP:每秒请求数量(Requests Per Second ASP:请求执行时间(Request Execution Time ASP:请求等待时间(Request Wait Time ASP:置入队列的请求数量(Requests Queued CPU使用百分比反映了处理器开销。CPU 使用百分比持续地超过 75%是性能瓶颈在于处理器的一个明显的迹象。每秒上下文切换次数指示了处理器的工作效率。如果处理器陷于每秒数千次的上下文切换,说明它忙于切换线程而不是处理ASP 脚本。每秒的 ASP 请求
16、数量、执行时间以及等待时间在各种测试情形下都是非常重要的监测项目。每秒的请求数量告诉我们每秒内服务器成功处理的ASP 请求数量。执行时间和等待时间之和显示了反应时间,这是服务器用处理好的页面作应答所需要的时间。我们可以绘出随着测试中并发用户数量的增加每秒请求数量和反应时间的变化图。增加并发用户数量时每秒请求数量也会增加。然而,我们最终会达到这样一个点,此时并发用户数量开始“压倒”服务器。如果继续增加并发用户数量,每秒请求数 量开始下降,而反应时间则会增加。要搞清楚硬件和软件的能力,找出这个并发用户数量开始“压倒”服务器的临界点非常重要。置入队列的 ASP 请求数量也是一个重要的指标。如果在测试
17、中这个数量有波动,某个 COM 对象所接收到的请求数量超过了它的处理能力。这可能是因为在应用的中间层使用了一个低效率的组件,或者在 ASP 会话对象中存储了一个单线程的单元组件。运行 WAS 的客户机 CPU使用率也有必要监视。如果这些机器上的 CPU 使用率持续地超过 75%,说明客户机没有足够的资源来正确地运行测试,此时应该认为测试结果不可信。在这种情况下,测试客户机的数量必须增加,或者减小测试的 Stress Level。3.2.4 Page Groups 对于一个 Web 应用而言,同一时刻用户点击分布是不一样的。WAS 允许设置用户点击流量的分布比例。这里我们假设在一个 Web应用程
18、序中,有 650 个人同时在线,其中 100 人正在添加提交数据,占 15.38%;有 150 人正在查询,占 23.08%。按照不同的 Web 应用,我们可以根据实际的情况在定制这个比例关系,来更加符合实际的情况。3.2.5 Users 现在很多 Web 应用程序为了提供个性化的服务,都设计了登陆过程。每个用户都有自己的登陆名和密码。WAS 也考虑到了这种情况,我们只要在 Users分支中添加用户名和对应的密码即可。3.2.6 Clients 添加多个 WAS 客户机。在运行期间,各个 WAS 客户机是通过 DCOM来协调的。各个 WAS 客户机只要正确安装了 WAS软件,启动了 WebTo
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 使用 WAS Web 应用程序 压力 测试 解析
限制150内