前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >性能测试中关注的指标

性能测试中关注的指标

作者头像
Criss@陈磊
发布2024-06-27 13:37:31
770
发布2024-06-27 13:37:31
举报
文章被收录于专栏:测试技术圈测试技术圈

性能测试中关注的指标

性能测试中我们会关注很多的性能指标,会通过观测的性能指标来决定性能测试是否继续执行、性能测试是否通过等等内容,但是每次说到要监控什么指标的时候,往往就纠结在服务器的CPU利用率、可用内存数、磁盘IO、网络吞吐等,这些都是ISO25010定义的资源特性中给出的例子,其实对于一次有价值的性能测试,观测的指标应该远远多于这些指标项。性能测试中需要关注的指标有系统层指标、中间件层指标、应用层指标、业务指标、发压机指标,那么具体如下。

系统层的指标

CPU的指标

  • CPU利用率
    • 定义:单位时间内CPU使用情况的统计,表示CPU使用的百分比。
    • 计算方法:(1-CPU空闲时间/CPU总时间)*100%
    • 单位:百分比(%)。
    • 影响:高利用率可能表示CPU瓶颈,低利用率则表示CPU空闲。
    • 异常举例:CPU利用率长期接近100%可能导致系统响应变慢。例如,在高并发情况下,CPU利用率高导致处理请求的时间变长。
  • 用户CPU时间(us)
    • 定义:CPU在用户模式下花费的CPU时间。
    • 计算方法:(用户模式下的CPU时间/总CPU时间)*100%。
    • 单位:百分比(%)。
    • 影响:高用户态时间表示用户应用程序占用了大量CPU资源。
    • 异常举例:用户态时间高可能是由于应用程序的计算密集型任务导致的。例如,一个数据处理应用程序在进行大量计算时。
  • 系统CPU时间(sy)
    • 定义:CPU在系统模式下花费的时间。
    • 计算方法:(系统模式下的CPU时间/总CPU时间)*100%。
    • 单位:百分比(%)。
    • 影响:高系统态时间表示内核操作占用了大量CPU资源。
    • 异常举例:系统态时间高可能是由于频繁的系统调用或I/O操作。例如,频繁的文件读写操作导致系统态时间增加。
  • 空闲时间:idle,
    • 定义:代表了空闲的CPU时间,CPU处于空闲状态的时间,即没有执行任何任务的时间。
    • 计算方法:(CPU空闲时间/总CPU时间)*100%
    • 单位:百分比(%)
    • 反应现象:操作系统上没有什么太占用CPU的程序在运行
    • 异常举例:暂无

内存指标

  • 内存使用率
    • 定义:已使用内存占总内存的百分比。也有用可用内存数这个指标的,这里指标和内存使用率有一定的相关性。可用内存数一般是通过总内存数减去已用内存数计算的,常以M为单位。
    • 计算方法:(已使用内存/总内存)*100%。
    • 单位:百分比(%)。
    • 影响:高内存使用率可能导致内存不足,引发交换(swap)操作。
    • 异常举例:内存使用率过高可能导致系统变慢。例如,大量应用程序同时运行占用了大量内存。
  • 虚拟内存大小
    • 定义:虚拟内存就是为了满足物理内存的不足而提出的策略,它是利用磁盘空间虚拟出的一块逻辑内存,用作虚拟内存的磁盘空间被称为交换空间(Swap Space)
    • 计算方法:虚拟内存总量。
    • 单位:MB或GB。
    • 影响:高虚拟内存使用表示实际内存不足。
    • 异常举例:虚拟内存过大可能导致交换分区频繁使用,系统变慢。例如,内存不足时系统频繁进行内存交换。
  • 交换空间(swap)
    • 定义:用于虚拟内存的交换空间使用情况。比较常规关注swap in(si,从交换空间读取的页数)、swap out(so,写入交换空间的页数)。高si表示频繁从磁盘读取数据,高so表示频繁将数据写入磁盘。可能导致I/O瓶颈。例如,内存不足时频繁从交换分区读写数据。
    • 计算方法:(交换空间已用量/总交换空间)*100%。
    • 单位:MB或GB。
    • 影响:频繁使用交换空间表示物理内存不足。
    • 异常举例:交换内存使用高可能导致系统性能下降。例如,物理内存耗尽,导致频繁的页面交换。

磁盘指标

  • 磁盘使用率
    • 定义:磁盘使用的百分比。
    • 计算方法:(已用磁盘空间/总磁盘空间)*100%。
    • 单位:百分比(%)。
    • 影响:高使用率表示磁盘空间不足。
    • 异常举例:磁盘使用率过高可能导致无法写入新数据。例如,日志文件占满磁盘空间。
  • 磁盘I/O
    • 定义:磁盘读写操作频率。
    • 计算方法:读写操作次数/时间。
    • 单位:次/秒。
    • 影响:高I/O频率表示磁盘操作频繁。
    • 异常举例:磁盘I/O频繁可能导致I/O瓶颈。例如,大量文件读写操作导致磁盘负载过高。
  • 磁盘吞吐量
    • 定义:磁盘读写数据的速度。
    • 计算方法:读写数据量/时间。
    • 单位:MB/s或GB/s。
    • 影响:高吞吐量表示数据读写速度快。
    • 异常举例:吞吐量低可能导致数据读写延迟。例如,磁盘性能不佳导致数据读写速度慢。
  • 磁盘I/O延迟
    • 定义:磁盘读写操作的延迟时间。
    • 计算方法:总延迟时间/读写操作次数。
    • 单位:毫秒(ms)。
    • 影响:高延迟表示磁盘响应慢。
    • 异常举例:I/O延迟高可能导致应用程序响应变慢。例如,磁盘碎片化导致数据读写延迟。

网络指标

  • 带宽
    • 定义:数据传输的网络带宽,可划分成内网带宽、外网带宽、专线带宽
    • 计算方法:传输数据量/时间。
    • 单位:Mbps或Gbps。
    • 影响:高带宽表示数据在对应带宽的网络上传输速度快。
    • 异常举例:带宽不足可能导致通信延迟。例如,大量内部数据传输占用带宽导致其他通信受阻。
  • 延迟
    • 定义:数据从源到目的地的传输时间。
    • 计算方法:数据包到达时间 - 发送时间。
    • 单位:毫秒(ms)。
    • 影响:高延迟表示网络传输慢。
    • 异常举例:网络延迟高可能导致数据传输变慢。例如,网络拥堵导致数据包传输延迟。
    • 备注:延迟如果出现问题,那么需要排查网络传输过程中的网元设备的发送时延、传播时延、处理时延、排队时延等等。
  • 抖动
    • 定义:数据包传输时间的变动。
    • 计算方法:最大延迟 - 最小延迟。
    • 单位:毫秒(ms)。
    • 影响:高抖动表示网络不稳定。
    • 异常举例:网络抖动大可能导致实时通信质量下降。例如,视频会议时网络抖动导致画面卡顿。
  • 丢包率
    • 定义:传输过程中丢失的数据包数量比率。
    • 计算方法:丢失的数据包数/总数据包数。
    • 单位:百分比(%)。
    • 影响:高丢包率表示网络可靠性差。
    • 异常举例:丢包率高可能导致数据传输失败。例如,网络不稳定导致文件传输中断。
  • 网络吞吐量
    • 定义:单位时间内通过网络传输的数据量。
    • 计算方法:传输数据量/时间。
    • 单位:Mbps或Gbps。
    • 影响:高吞吐量表示网络传输能力强。
    • 异常举例:吞吐量低可能导致数据传输速度慢。例如,带宽不足或网络拥堵导致传输速度下降。

中间件层指标

网关

  • 每秒处理请求数
    • 定义:网关每秒处理的请求数量。
    • 计算方法:总请求数/总时间。
    • 单位:次/秒。
    • 影响:高处理请求数表示网关处理能力强。
    • 异常举例:处理请求数低可能表示网关性能瓶颈。例如,网关负载过高导致处理能力下降。

数据库

  • SQL耗时
    • 定义:SQL查询执行时间。
    • 计算方法:总查询时间/查询次数。
    • 单位:毫秒(ms)。
    • 影响:高耗时表示查询效率低。
    • 异常举例:SQL耗时长可能导致数据库响应变慢。例如,复杂查询或缺乏索引导致查询时间长。
  • 吞吐量(IO)
    • 定义:数据库在单位时间内读写数据的总量。
    • 计算方法:读写数据量/时间。
    • 单位:MB/s或GB/s。
    • 影响:高吞吐量表示数据读写效率高。
    • 异常举例:吞吐量低可能导致数据处理变慢。例如,数据库I/O瓶颈导致读写速度慢。
  • 连接数
    • 定义:当前数据库的连接数量。
    • 计算方法:活跃连接数。
    • 单位:个。
    • 影响:高连接数表示数据库负载高。
    • 异常举例:连接数过多可能导致数据库性能下降。例如,大量并发连接导致连接池耗尽。
  • 缓冲区命中率
    • 定义:数据查询命中缓冲区的比例。
    • 计算方法:命中缓冲区的查询数/总查询数。
    • 单位:百分比(%)。
    • 影响:高命中率表示查询效率高。
    • 异常举例:命中率低可能导致频繁磁盘I/O。例如,缓冲区大小不足导致命中率下降。

除去上述内容,数据库的锁性能也是需要关注的,但是这部分相对复杂,无法简单通过如上方式揭示清楚。

缓存

  • 缓存命中率
    • 定义:缓存命中请求的比例。
    • 计算方法:命中缓存的请求数/总请求数。
    • 单位:百分比(%)。
    • 影响:高命中率表示缓存效率高。
    • 异常举例:缓存命中率低可能导致性能下降。例如,缓存设置不合理导致大量请求未命中。
  • 使用内存数
    • 定义:缓存使用的内存量。
    • 计算方法:缓存使用内存的数量。
    • 单位:MB或GB。
    • 影响:高使用内存表示缓存数据多。
    • 异常举例:内存使用过高可能导致系统内存不足。例如,大量数据缓存导致内存耗尽。
  • 连接数
    • 定义:当前缓存的连接数量。
    • 计算方法:活跃连接数。
    • 单位:个。
    • 影响:高连接数表示缓存负载高。
    • 异常举例:连接数过多可能导致缓存性能下降。例如,大量并发连接导致缓存服务器压力过大。
  • Key值总数
    • 定义:缓存中存储的key数量。
    • 计算方法:总key数。
    • 单位:个。
    • 影响:高键值总数表示缓存数据量大。
    • 异常举例:键值总数过多可能导致缓存管理困难。例如,缓存中存储大量不常用数据导致性能下降。

MQ

  • 消息延迟
    • 定义:消息从发送到接收的时间。
    • 计算方法:消费者接受到消息并开始处理的时间-生产者发送消息的时间
    • 单位:毫秒(ms)。
    • 影响:高延迟表示消息处理速度慢。
    • 异常举例:消息延迟高可能导致系统响应变慢。例如,消息队列拥堵导致消息处理延迟。
  • 堆积量
    • 定义:消息队列中未处理的消息数量。
    • 计算方法:未处理消息数。
    • 单位:个。
    • 影响:高堆积量表示消息处理能力不足。
    • 异常举例:堆积量过多可能导致消息处理延迟。例如,消费端处理能力不足导致消息堆积。

分布式存储系统

  • 空间利用率
    • 定义:空间利用率指的是在分布式存储系统中,已使用存储空间与总存储空间的比例。它通常用来衡量存储资源是否得到了充分利用,以及是否需要进行优化或扩展。
    • 计算方法:已使用的存储空间/总存储空间*100%。
    • 单位:%
    • 影响:高空间利用率可能意味着存储资源得到了有效利用,但也可能接近容量极限,需要考虑扩展或优化存储策略。
    • 异常举例:假设一个分布式存储系统有1PB的总存储容量,已使用800TB。那么空间利用率为80%,这个利用率表明存储资源已经使用了大部分,可能需要考虑数据管理策略(数据归档、数据压缩、去重技术、存储分层等)或扩展存储容量。
  • 读写速度
    • 定义:存储系统的读写数据速度。
    • 计算方法:读写数据量/时间。
    • 单位:MB/s或GB/s。
    • 影响:高读写速度表示存储系统性能好。
    • 异常举例:读写速度低可能导致数据处理变慢。例如,存储设备性能不足导致读写速度慢。

应用层指标

响应时间

  • 平均响应时间
    • 定义:所有请求的平均响应时间。
    • 计算方法:总响应时间/请求数。
    • 单位:毫秒(ms)。
    • 影响:平均响应时间高表示系统处理速度慢。
    • 异常举例:平均响应时间长可能导致用户体验差。例如,服务器处理能力不足导致响应变慢。
  • 分位数响应时间(TP90、TP95、TP99)
    • 定义:TP90是90%请求的响应时间低于此值。TP95是95%请求的响应时间低于此值。TP99是99%请求的响应时间低于此值
    • 计算方法:升序排序后取TP90是第90%的响应时间的数值,TP95是第95%的响应时间的数值,TP99是第99%的响应时间的数值
    • 单位:毫秒(ms)。
    • 影响:对应分位响应时间高表示大部分请求处理速度慢。
    • 异常举例:分位响应时间长可能导致大多数用户体验差。例如,高并发下服务器负载过高。
  • 最小响应时间
    • 定义:所有请求中最短的响应时间。
    • 计算方法:最短的响应时间。
    • 单位:毫秒(ms)。
    • 影响:最小响应时间短表示有部分请求处理速度快。
    • 异常举例:最小响应时间长可能表示系统有时响应慢。例如,服务器负载均衡不均导致部分请求处理快。

吞吐量

  • TPS
    • 定义:每秒处理的事务数量,但是一个事务的大小却没有一个统一的定义,因此要使用TPS,最好内部定义好事务。
    • 计算方法:总事务数/总时间。
    • 单位:TPS。
    • 影响:高TPS表示系统处理能力强。
    • 异常举例:TPS低可能表示系统处理能力不足。例如,服务器性能瓶颈导致事务处理速度慢。
  • QPS
    • 定义:每秒处理的查询数量。
    • 计算方法:总查询数/总时间。
    • 单位:QPS。
    • 影响:高QPS表示系统处理查询能力强。
    • 异常举例:QPS低可能表示系统查询处理能力不足。例如,数据库性能瓶颈导致查询处理速度慢。

应用资源

  • 并发数
    • 定义:在同一时刻系统处理的请求数量。通过时间窗口内的请求数除以时间窗口的长度,例如每秒并发数
    • 计算方法:通过日志或监控工具统计在时间窗口内处理的请求数,除以时间窗口的长度,例如每秒并发数。
    • 单位:个
    • 影响:它是衡量系统负载和性能的重要指标之一。通常通过监控工具或日志分析获取。
    • 异常举例:假设在某个时间点,并发数突然飙升至平时的两倍,这可能意味着某个外部系统突然发起大量请求或者存在异常流量。如果未及时处理,可能导致服务器过载甚至宕机。解决方案包括增加服务器节点、优化负载均衡策略或对外部系统进行流量限制。并发数过高可能导致系统过载,响应时间延长。
  • 连接数
    • 定义:连接数指当前系统中正在建立或已经建立的连接总数。
    • 计算方法:通过应用服务器的管理控制台或监控工具获取。
    • 单位:个
    • 影响:直接反映应用服务中间件的资源占用情况。
    • 异常举例:在高并发场景下,如果连接数持续升高但处理速度未见显著提升,可能是未被及时释放。此时需要检查代码逻辑,确保所有连接均在使用后正确关闭,避免资源浪费。连接数达到上限可能导致新连接无法建立,影响服务可用性。
线程池
  • 活动线程数
    • 定义:正在处理任务的线程数量。
    • 计算方法:通过线程池管理工具或应用服务器管理控制台统计。
    • 单位:个。
    • 影响:高活动线程数表示系统负载高。
    • 异常举例:活动线程数过高可能导致线程争用,系统响应变慢。
  • 最大线程数
    • 定义:线程池允许创建的最大线程数量。
    • 计算方法:配置项,设置在系统配置文件或管理控制台。
    • 单位:个。
    • 影响:最大线程数限制了系统的并发处理能力。
    • 异常举例:最大线程数过低可能导致系统无法充分利用资源,过高可能导致资源浪费。
  • 空闲线程数
    • 定义:线程池中当前未被使用的线程数量。
    • 计算方法:通过线程池管理工具或应用服务器管理控制台统计。
    • 单位:个。
    • 影响:低空闲线程数表示系统资源利用率高。
    • 异常举例:空闲线程数过低可能导致新任务无法及时处理,响应时间延长。

GC(Garbage Collection)

  • 堆内存占用
    • 定义:Java虚拟机中堆内存的使用情况。
    • 计算方法:通过JVM监控工具如JVisualVM获取。
    • 单位:MB。
    • 影响:高堆内存占用表示大量对象驻留内存。
    • 异常举例:堆内存不足可能导致频繁GC,影响系统性能。
  • Young Generation
    • 定义:堆内存中年轻代的大小。
    • 计算方法:通过JVM参数配置,监控工具获取。
    • 单位:MB。
    • 影响:年轻代过小可能导致对象频繁晋升到老年代。
    • 异常举例:Young GC过于频繁,影响系统响应时间。
  • Old Generation
    • 定义:堆内存中老年代的大小。
    • 计算方法:通过JVM参数配置,监控工具获取。
    • 单位:MB。
    • 影响:老年代过大可能导致Full GC时间过长。
    • 异常举例:Full GC过于频繁,导致系统暂停时间过长,影响用户体验。
  • 暂停时间
    • 定义:GC操作导致的应用暂停时间。
    • 计算方法:通过GC日志分析工具获取。
    • 单位:毫秒(ms)。
    • 影响:高暂停时间影响应用响应速度。
    • 异常举例:GC暂停时间过长导致用户请求响应延迟,影响用户体验。
  • full gc频率
    • 定义:系统中Full GC(完全垃圾回收)操作的频率。
    • 计算方法:通过GC日志分析工具统计。
    • 单位:次/分钟。
    • 影响:高频率Full GC表示内存压力大。因为每次 Full GC 都会暂停应用程序,进行内存回收,这种暂停会影响系统的响应时间和用户体验。
    • 异常举例:频繁Full GC导致系统暂停,影响性能和用户体验。

错误信息

  • 错误数
    • 定义:系统中发生的错误数量。
    • 计算方法:通过日志分析工具统计错误日志。
    • 单位:个。
    • 影响:高错误数表示系统处理过程中出现问题。
    • 异常举例:错误过多可能导致系统功能失效,影响用户使用。
  • 超时数
    • 定义:系统中请求处理超时的数量。
    • 计算方法:通过日志分析工具统计超时日志。
    • 单位:个。
    • 影响:高超时数表示系统处理能力不足。
    • 异常举例:大量超时可能导致用户请求得不到及时响应,影响用户体验。
  • 成功率
    • 定义:系统成功处理请求的比例。
    • 计算方法:成功请求数/总请求数。
    • 单位:百分比(%)。
    • 影响:低成功率表示系统处理请求的可靠性差。
    • 异常举例:成功率低可能导致用户体验差,系统稳定性不足,需要及时优化。

业务层指标

关键业务的考核指标,重点关注业务价值评价的标准指标,电商类的下单量、支付量等,股票交易类关注买入、卖出以及账户中资金和持有股票的资金的关系等指标。这部分最好是和团队内BA一起确定,建立一套基于业务价值的监控指标。

压力机指标

  • CPU利用率
    • 定义:衡量CPU的使用情况,反映系统负载。
    • 计算方法:通过系统监控工具获取CPU使用率。
    • 单位:百分比(%)。
    • 影响:压力机的高CPU使用率表示系统负载大,可能影响都并发的执行。
    • 异常举例:持续高CPU使用率可能导致压力机系统变慢,甚至宕机,导致发压不够,出现问题。
  • 可用内存数
    • 定义:衡量内存的使用情况,反映系统的内存资源消耗。
    • 计算方法:通过系统监控工具获取内存使用率。
    • 单位:百分比(%)。
    • 影响:压力机会存储很多压力日志,因此需要有足够的磁盘空间存储
    • 异常举例:不足会导致压力生成失败,压力测试失败。
  • 磁盘可用空间
    • 定义:磁盘还剩余的存储空间。
    • 计算方法:通过系统监控的查看工具查看。
    • 单位:MB或GB。
    • 影响:高磁盘使用率表示大量I/O操作,可能导致I/O瓶颈,压力机的执行日志无法正确保存导致执行失败。
    • 异常举例:磁盘I/O过高可能导致系统响应变慢,文件读写失败,压力机失效。
  • 磁盘IO
    • 定义:衡量磁盘的使用情况,反映系统的I/O操作。
    • 计算方法:通过系统监控工具获取磁盘使用率。
    • 单位:百分比(%)。
    • 影响:高磁盘使用率表示大量I/O操作,可能导致I/O瓶颈,压力机的执行日志无法正确保存导致执行失败。
    • 异常举例:磁盘I/O过高可能导致系统响应变慢,文件读写失败,压力机失效。
  • 文件句柄数
    • 定义:衡量系统打开的文件句柄数。
    • 计算方法:通过系统监控工具获取当前打开的文件句柄数。
    • 单位:个。
    • 影响:文件句柄数过多表示系统资源被大量占用。
    • 异常举例:文件句柄数达到系统上限可能导致新文件无法打开,压力机失效。
  • 网络带宽
    • 定义:压力机到服务器的网络带宽以及压力机网卡配置。
    • 计算方法:网络带宽靠网元设备给出是百兆还是千兆,压力机网卡配置在压力机的硬件信息中查看。
    • 单位:Mbps。
    • 影响:网络带宽,压力机网卡配置都影响压力机发的压力是怎么样一个方式到达SUT的。
    • 异常举例:压力机网卡配置低,网络带宽小,压力往往都在网络中被阻塞了,很难有并发效果到达SUT。
  • 网络IO
    • 定义:衡量网络输入输出的流量。
    • 计算方法:通过网络监控工具获取网络I/O数据。
    • 单位:Mbps。
    • 影响:高网络I/O表示大量数据传输,可能影响系统性能。
    • 异常举例:网络I/O瓶颈可能导致数据传输延迟,压力响应慢。
  • TCP连接数
    • 定义:衡量系统中TCP连接的数量。
    • 计算方法:通过网络监控工具获取当前TCP连接数。
    • 单位:个。
    • 影响:高TCP连接数表示系统承载大量连接请求。
    • 异常举例:TCP连接数达到上限可能导致新连接无法建立,影响压力机生成压力。
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-06-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 质问 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 性能测试中关注的指标
    • 系统层的指标
      • CPU的指标
      • 内存指标
      • 磁盘指标
      • 网络指标
    • 中间件层指标
      • 网关
      • 数据库
      • 缓存
      • MQ
      • 分布式存储系统
    • 应用层指标
      • 响应时间
      • 吞吐量
      • 应用资源
      • GC(Garbage Collection)
      • 错误信息
    • 业务层指标
      • 压力机指标
      相关产品与服务
      Elasticsearch Service
      腾讯云 Elasticsearch Service(ES)是云端全托管海量数据检索分析服务,拥有高性能自研内核,集成X-Pack。ES 支持通过自治索引、存算分离、集群巡检等特性轻松管理集群,也支持免运维、自动弹性、按需使用的 Serverless 模式。使用 ES 您可以高效构建信息检索、日志分析、运维监控等服务,它独特的向量检索还可助您构建基于语义、图像的AI深度应用。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档