系统指标
检测性能测试是否有bug的关键指标
1、系统指标——与用户场景及需求直接相关。
- 并发用户数:某一物理时刻同时向系统提交请求的用户数。
- 平均响应时间:系统处理事务的响应时间的平均值,对于系统快速响应类页面,一般响应时间为3s左右。
- 吞吐量。
2、服务器资源指标——与硬件资源消耗直接相关
- CPU使用率:一般可接受上限为85%
- 内存利用率:一般可接受上限为85%
- 磁盘I/O
- 网络宽带
性能测试有bug之后继续测试进行调优的关键指标
1、Java应用:
- JVM监控:JVM内存、Full GC频率
2、数据库:
- 慢查询
- 缓存命中率
- 数据池连接数
- mysql锁
3、压测机资源
- CPU
- 内存
- 网络
- 磁盘空间
关于系统指标的基本问题
1、可以直接用来衡量系统处理能力的指标是(吞吐量)。
2、在系统处于轻压力区即未饱和时,并发用户数上升,平均响应时间(基本不变),系统吞吐量(上升)。
3、在系统处于重压力区即基本饱和时,并发用户数上升,平均响应时间(上升),系统吞吐量(基本不变)。
4、在系统处于崩溃区即压力过载时,并发用户数上升,平均响应时间(上升),系统吞吐量(下降)。
硬件服务器资源指标
处理速度:CPU>内存>磁盘
CPU
-
每个程序的CPU使用率 = 在一段时间内每个程序占用的CPU时间 ÷ 总时间
-
性能测试时统计的CPU使用率 = 用户CPU使用率 + 系统CPU使用率
电脑中的所有程序及所有操作都要占用需要消耗CPU。
QQ、微信、浏览器等用户使用的程序消耗CPU,称为用户CPU。
从内存中读取数据、从磁盘中读数据、磁盘管理等操作系统的工作消耗CPU,称为为系统CPU。
内存和虚拟内存
1、正常情况下,程序加载到内存中来执行。
2、当内存不够时,会加载部分立即要执行的程序到内存中,其他的程序部分放在磁盘中(虚拟内存)。
3、当立即要执行的程序执行完成后,从虚拟内存中读取其他的数据内容到实际内存中,再执行程序的处理。
4、依次循环第3步,完成程序的运行。
卡的原因的就是:每次都需要从虚拟内存(磁盘)中读取数据进行执行,磁盘的读取速度相对CPU和内存而言非常慢,因此感觉内存不足程序很卡。
闪退的原因就是:在第2步中,需要加载部分立即要执行的程序到内存中,如果当前的内存空间不满足最低要求(立即要执行的程序所需要的内存)时,就会出现闪退。
磁盘IO
固定磁盘IO:500M/s
机械硬盘IO:不超过200M/s
在性能监控时:
(1)监控磁盘实际IO是否已经接近最大值,接近则有问题。
(2)IO队列,如果当前IO队列长度一直不为0,说明磁盘IO有问题。
网络
监控实际的网络流量,与网络宽带做对比,如果实际网络流量与网络宽带接近,则说明网络存在瓶颈,需要优化。