后台性能测试【简例】

本文详细介绍了后台性能测试的概念,强调了负载测试和压力测试的重要性。文章阐述了性能测试关注的外部指标,如吞吐量、响应时间和错误率,并分析了它们之间的关系。此外,还探讨了内部指标,如CPU、内存、负载和磁盘IO的监控,以及如何通过这些指标发现性能瓶颈。最后,提出了性能测试的需求背景和完整的测试流程,以及测试报告的关键内容。
摘要由CSDN通过智能技术生成

概述
性能测试 是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。负载测试和压力测试都属于性能测试,两者可以结合进行。通过负载测试,确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统各项性能指标的变化情况。压力测试是通过确定一个系统的瓶颈或者不能接受的性能点,来获得系统能提供的最大服务级别的测试。

外部指标

从外部看,主要关注三个指标

  • 吞吐量:每秒钟系统能够处理的请求数、任务数。
  • 响应时间:服务处理一个请求或一个任务的耗时。
  • 错误率:某批次请求中失败或发生错误的请求比例。

互相影响关系如下:
响应时间的指标取决于具体的服务返回的数据有效周期,实时性。对于响应时间的统计,应从均值、.90、.99、分布等多个角度统计,而不仅仅是给出均值。
吞吐量的指标受到响应时间、服务器软硬件配置、网络状态等多方面因素影响。
吞吐量越大,响应时间越长。
服务器硬件配置越高,吞吐量越大。
网络越差,吞吐量越小。
在低吞吐量下的响应时间的均值、分布比较稳定,不会产生太大的波动。
在高吞吐量下,响应时间会随着吞吐量的增长而增长,增长的趋势可能是线性的,也可能接近指数的。当吞吐量接近系统的峰值时,响应时间会出现激增。
错误率和服务的具体实现有关。通常情况下,由于网络超时等外部原因造成的错误比例不应超过5%%,由于服务本身导致的错误率不应超过1% 。

内部指标

从系统的角度看,性能测试主要关注CPU、内存、负载、网络、磁盘IO等
CPU

后台服务的所有指令和数据处理都是由CPU负责,主要有如下几个维度的统计指标:

  • us:用户态使用的cpu时间百分比
  • sy:系统态使用的cpu时间百分比
  • ni:用做nice加权的进程分配的用户态cpu时间百分比
  • id:空闲的cpu时间百分比
  • wa:cpu等待IO完成时间百分比
  • hi:硬中断消耗时间百分比
  • si:软中断消耗时间百分比
  • us & sy:大部分后台服务使用的CPU时间片中us和sy的占用比例是最高的。

同时这两个指标又是互相影响的,us的比例高了,sy的比例就低,反之亦然。
在使用多核CPU的服务器上,CPU 0负责CPU各核间的调度,CPU 0上的使用率过高会导致其他CPU核心之间的调度效率变低。因此测试过程中CPU 0需要重点关注。

  • ni:每个Linux进程都有个优先级,优先级高的进程有优先执行的权利,这个叫做pri。进程除了优先级外,还有个优先级的修正值。这个修正值就叫做进程的nice值。一般来说,被测服务和服务器整体的ni值不会很高。如果测试过程中ni的值比较高,需要从服务器Linux系统配置、被测服务运行参数查找原因。

  • id:线上服务运行过程中,需要保留一定的id冗余来应对突发的流量激增。在性能测试过程中,如果id一直很低,吞吐量上不去,需要检查被测服务线程/进程配置、服务器系统配置等。

  • wa:磁盘、网络等IO操作会导致CPU的wa指标提高。通常情况下,网络IO占用的wa资源不会很高,而频繁的磁盘读写会导致wa激增。如果被测服务不是IO密集型的服务,那需要检查被测服务的日志量、数据载入频率等。

  • hi & si:硬中断是外设对CPU的中断,即外围硬件发给CPU或者内存的异步信号就是硬中断信号;软中断由软件本身发给操作系统内核的中断信号。通常是由硬中断处理程序或进程调度程序对操作系统内核的中断,也就是系统调用(System Call)。在性能测试过程中,hi会有一定的CPU占用率,但不会太高。对于IO密集型的服务,si的CPU占用率会高一些。

在异步框架中,CPU本身是不会被IO阻塞的,主要关注点:

  • 数据处理:

字符串操作(尝试流)
内存操作(内存池)
数据结构设计(红黑树换HASHMAP)

  • 并发的处理:

锁的临界区减少(仅在必要时加小粒度锁)
队列化(无锁)

  • 计算、存储、网络三者要做到平衡:

合理的将网络、计算的开销减小,增大存储的开销(缓存),大部分计算、网络的瓶颈都可以用增大存储来解决,但要有度。
更合理的调度(docker、云化)

内存
对内存监控的主要目的是检查被测服务所占用内存的波动情况。top命令内存相关参数解析如下:

  • VIRT:进程所使用的虚拟
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值