LoadRunner数据库服务器资源常用软件测试监控指标
摘要:本文详细介绍了数据库性能测试中后端深度监控的关键指标及诊断方法。从CPU、内存、磁盘I/O、网络四个资源层级进行分类解析,包括%ProcessorTime、AvailableMbytes、%DiskTime、BytesTotal/sec等核心指标的健康范围和警告阈值。同时阐述了数据库特定指标如锁等待、SQL消耗等的重要性,强调指标关联分析和基线建立的必要性。文章为性能测试人员提供了全面的监控
性能测试“后端深度监控” 是定位瓶颈、分析问题根源的关键。LoadRunner Controller 本身可以通过各种监控代理(如 Windows PerfMon、UNIX/Linux 的 rstatd 等)来收集这些指标。
以下指标按数据库服务器资源层级进行分类,并附有详细的解读和诊断意义。
一、CPU相关指标
CPU是数据库处理计算的主要硬件,使用情况直接反映了系统的繁忙程度。
% Processor Time(处理器时间百分比),CPU用于执行非空闲线程的时间百分比。这是最主要的CPU监控指标。
详解:
健康范围:持续低于 70%-80%。
警告:持续高于 85%,表明CPU是潜在瓶颈。
诊断:如果该值持续很高,同时User Time很高,说明数据库自身的SQL计算和数据处理消耗了大量CPU;如果Privileged Time很高,可能意味着内核态操作频繁,如 I/O 请求过多、上下文切换频繁。
% User Time(用户模式时间百分比),CPU在用户模式下执行应用程序(如数据库进程)代码的时间百分比。
诊断:高值通常意味着数据库正在繁忙地进行排序、哈希连接、数据过滤等 SQL 操作。
%Privileged Time(特权模式时间百分比),CPU 在内核模式下执行操作系统服务(如系统调用、I/O 管理)的时间百分比。
诊断:异常高时,需结合磁盘和网络指标,可能表明存在大量的磁盘 I/O 或网络 I/O。
Processor Queue Length(处理器队列长度),在处理器队列中等待执行的线程数。
详解:
健康范围:每颗 CPU 主要的队列长度持续低于 2。
警告:如果持续大于 (2 * CPU 主要数),则明确表示 CPU 是系统瓶颈。线程在等待 CPU 时间片,会导致响应时间急剧增加。
二、内存相关指标
数据库严重依赖内存来缓存数据和执行计划,以减少昂贵的磁盘 I/O。
Available Mbytes(可用内存兆字节数),物理内存中可供程序立即使用的内存量。
详解:
健康范围:至少要有 10% 的物理内存可用。如果服务器有大量内存,绝对值不应低于 1-2 GB。
警告:持续很低,表明物理内存可能不足,系统可能开始使用交换分区。
Pages/sec(页/秒),为解决硬页错误而从磁盘读取或写入磁盘的页数。
详解:
健康范围:持续低于 20。
警告:持续高于 50 或 100,表明内存压力巨大,发生了大量的硬页错误,服务器正在频繁地进行磁盘交换。这是内存瓶颈的明确信号,会严重拖慢系统。
Buffer Cache Hit Ratio(缓冲区缓存命中率) - 数据库特定,从数据库缓冲区缓存中获取的数据页的百分比,而不需要从磁盘读取。这是衡量数据库内存效率的黄金指标。
详解:
Oracle: Buffer Hit Ratio,理想值应 > 90%。
SQL Server: Buffer cache hit ratio,理想值应 > 95%。
MySQL InnoDB: 通过 Innodb_buffer_pool_reads / Innodb_buffer_pool_read_requests 计算,命中率应接近 100%。
诊断:低命中率意味着数据库需要频繁从磁盘读取数据,通常是由于缓冲区大小不足或存在全表扫描等低效查询。
三、磁盘 I/O 相关指标
磁盘是数据库最后持久化数据的地方,I/O 性能是数据库的“生命线”。
% Disk Time(磁盘时间百分比),磁盘忙于处理读/写请求的时间百分比。
详解:由于该指标在 RAID 环境下可能超过 100%,通常更关注趋势。持续高值(如 > 80%)表明磁盘子系统繁忙。
Avg. Disk sec/Read & Avg. Disk sec/Write(平均磁盘读/写耗时),一次磁盘读/写操作所需的平均时间(以秒为单位)。这是衡量磁盘性能最直接的指标。
详解(根据微软的建议):
优秀:< 10 ms (0.01s)
良好:10 - 20 ms (0.01s - 0.02s)
一般:20 - 50 ms (0.02s - 0.05s)
差/可能存在瓶颈:> 50 ms (0.05s)
Disk Reads/sec & Disk Writes/sec(磁盘读/写速率)。每秒物理磁盘的读/写操作次数。
诊断意义:需要结合 Avg. Disk sec/Transfer 来看。高 IOPS 但延迟低,说明磁盘性能好。高 IOPS 伴随高延迟,则磁盘可能是瓶颈。
Avg. Disk Queue Length(平均磁盘队列长度),在监控时间间隔内,排队等待磁盘的请求平均数。
详解:
健康范围:持续低于 (2 * 磁盘主轴数)。对于单块磁盘,应持续低于 2。
警告:高队列长度意味着磁盘无法跟上请求速度,是 I/O 瓶颈的明确迹象。
四、网络相关指标
对于分布式数据库或应用和数据库分离的架构网络非常重要。
Bytes Total/sec(每秒总字节数),网络适配器发送和接收字节的总速率。
诊断意义:检查该值是否接近网络接口的带宽上限(如 1 Gbps ≈ 125 MB/s)。持续接近上限表明网络带宽可能成为瓶颈。
Network Interface: Output Queue Length(网络输出队列长度),在网络适配器输出队列中等待的数据包数量。
诊断意义:该值应持续为 0 或接近 0。持续大于 2 表明网络可能存在拥塞或瓶颈。

五、数据库特定主要指标
这些指标直接反映数据库内部的工作状态,是定位SQL和配置问题的关键。
锁和阻塞
Lock Timeouts/sec / Lock Waits/sec:每秒发生的锁超时或锁等待数量。高值表示存在严重的资源争用。
Average Wait Time (ms):平均每个锁等待的耗时。高值(如 > 100ms)对用户体验影响很大。
Deadlocks/sec:每秒发生的死锁数。任何非零值都需要引起高度重视,表明应用程序逻辑可能有问题。
用户连接数
User Connections:当前连接到数据库的用户数。监控和最大连接数的关系,防止连接数耗尽。
SQL相关(通过数据库动态性能视图获取)
高消耗SQL:监控 CPU Time、Elapsed Time、Disk Reads、Logical Reads 排名靠前的SQL语句。这些是性能调优的首要目的。
批量重编译/秒:高值表明执行计划缓存存在问题,可能导致 CPU 使用率升高。
监控实践和关联分析建议
诊断:永远不要孤立地看待一个指标。如,高 %Disk Time和低Buffer Cache Hit Ratio同时出现,强烈指向内存不足导致物理 I/O 过高。
设置基线:在系统性能良好时收集一套指标作为基线,这样在性能测试时才能有对比的依据。
监控细节:在负载测试的“加压”、“满载”和“恢复”阶段,密切关注这些指标的变化趋势。
工具使用:在LoadRunner中正确配置监控计数器,并善用图表叠加功能,将响应时间和后端资源指标(如CPU、磁盘队列)在时间轴上对齐,可以直观地发现因果关系。
文章来源:卓码软件测评
更多推荐




所有评论(0)