加压已经结束,服务器CPU曲线还在上升;采样间隔改成了一秒,结果中却仍然隔几秒才有一个点。遇到这些情况,需要检查采集端和分析端各自用了什么设置。LoadRunner中的资源采样、事务数据发送和图表汇总都有时间间隔,改错位置,曲线看起来变细了,实际采集的数据却没有增加。以下以LoadRunner Professional的Controller和Analysis为例说明。
一、LoadRunner怎样设置服务器端资源监控采样间隔
服务器资源监控应在正式运行前配置。先确定要观察的机器、计数器和变化持续时间,再选择间隔,避免把控制机或压力机资源误当成被测服务器数据。
1、找到资源监控的采样设置
Controller的资源采样间隔表示两次采集之间相隔多少秒。数值越大,采集越稀疏;它与同页事务监控的频率设置用途不同。
①在Controller中打开【Tools】→【Options】→【Monitors】。
②找到【Resource Monitoring】区域,在【Data Sampling Rate】中填写所需秒数;部分版本的区域名称为【Server Resource Monitors】。
③核对【Transaction Data】中的【Frequency】,确认没有把事务监控选项当作服务器采样设置。
④保存配置;已有监控器需要应用新间隔时,保存场景并重新打开。
2、核对监控器能否按该间隔采集
①确认使用的是【Windows Resources】、数据库监控器,还是经由【SiteScope】等外部系统取得数据。
②查阅对应监控器的最小间隔及独立配置,检查【Data Sampling Rate】是否对它生效。
③先运行一小段测试,核对实际数据点间距,再确定正式测试配置。
全局输入一秒,并不保证每个监控器都按一秒采集。例如当前官方文档说明,Windows资源监控最小间隔为三秒,Oracle监控为十秒。外部监控源也可能按自己的周期产生数据,缩短Controller的读取间隔,未必能得到新的测量值。
3、在场景运行前验证机器与计数器
①切换到【Run】,在图表树中选择所需资源监控图。
②点击【Add Measurements】,在【Monitored Server Machines】中添加目标服务器。
③在【Resource Measurements】中选择CPU、内存或磁盘等本次需要的计数器。
④启动短测试,检查图例中的主机名、计数器实例和数值变化。
二、LoadRunner监控曲线与负载阶段对不齐如何校正
对齐时应以实际运行记录为依据。计划在第五分钟进入稳态,不代表所有Vuser都准时完成初始化,也不代表业务请求量已经稳定。
1、统一横轴并找到实际阶段边界
先把时间单位和起点统一,再判断曲线有没有偏移。不能拿一张墙上时钟时间的图,直接与另一张场景经过时间的图比较。
①在Controller打开【Graphs Settings】,将【Time】设为【Relative to Scenario Start】。
②将【Graph Time】调整到相同范围,避免一张显示全程,另一张只显示最近一分钟。
③查看【Running Vusers】,结合吞吐量或事务速率,确定实际加压、稳态和减压边界。
④对照【Scenario Status】中的【Elapsed Time】,核对阶段发生的位置。
2、在Analysis中统一汇总粒度
①打开同一次运行结果中的服务器资源图和【Running Vusers】图。
②在图表中右键选择【Set Granularity】,或按【Ctrl+G】,设置相同时间粒度。
③选择【View】→【Merge Graphs】,选取另一张图,使用【Overlay】或【Tile】比较。
④放大阶段切换附近的时间范围,查看原先的错位是否仍然存在。
较大的汇总窗口可能跨过阶段边界,短暂尖峰也会被平均后显示。减小粒度有助于查看细节,但不能补回采集时没有记录的数据。用于时间对照时,应保留共同时间轴;相关性合并会改变横轴含义,不适合拿来判断阶段先后。
3、外部监控按时间戳换算
①对照Controller、负载机及外部监控系统的时间,核对时区和时钟偏差。
②选取能在两边找到的同一事件,例如测试开始日志或明确的请求突增,检查时间差。
③保留原始记录,在对照数据中按已核实的偏差换算,再比较阶段位置。
只有外部数据使用独立时间戳时,才需要检查这类偏移。若偏差在测试过程中持续变化,不能只减去一个固定秒数了事;应处理时钟同步问题后复测。曲线形状相似,也不足以证明两边记录的是同一时刻。
三、LoadRunner怎样判断错位来自采集还是服务器响应
显示方式调整完,曲线仍然滞后,就要查看具体数据。服务器负载存在延迟响应并不罕见,后台队列和异步任务可能在请求减少后继续运行。
1、从数据点检查漏采和显示延迟
曲线连成了一条线,不代表中间每秒都有测量值。阶段附近若恰好缺少记录,仅看折线很难发现。
①对支持该功能的图表选择【View】→【View Raw Data】,限定异常时间范围。
②查看【Graph Data】中的时间和值,检查相邻点间隔是否突然变大。
③回到Controller的【Output】窗口,核对同一时间是否存在监控连接或采集错误。
④若使用外部采集系统,检查源端记录的时间,比较数据产生与界面显示的先后。
2、用业务指标判断是否真的存在滞后
①将资源曲线与【Hits per Second】、【Throughput】或相应事务速率放在同一时间范围比较。
②检查减压后是否仍有执行中的请求、排队任务或后台处理。
③在复测中适当延长稳态和减压后的观察时间,查看资源是否按相同规律回落。
Vuser数量下降后,服务端工作未必立即结束。请求已经进入队列、数据库仍在提交,都会使资源占用晚一些回落。若实际请求量与后台处理能够解释这段延迟,就应保留这个结果,不能为了让峰值落进稳态区而平移曲线。
总结
LoadRunner曲线对齐,最终要能对应到同一轮测试中的实际事件。采样间隔决定留下多少细节,分析粒度决定这些细节怎样呈现,服务器本身还可能有延迟响应。测试前验证监控器的实际周期,分析时保留阶段边界附近的数据,会比事后反复调整图形省事。希望这些方法能帮助你把显示差异和真实性能现象辨认清楚;后续选择监控计数器时,也可以围绕需要解释的业务行为来安排。
