性能测试杂论

2023-12-06 10:48
文章标签 性能 测试 杂论

本文主要是介绍性能测试杂论,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

性能测试术语

1、响应时间

响应时间=呈现时间+系统响应时间

系统响应时间=网络传输时间+应用延迟时间

应用延迟时间=数据库延迟时间+应用服务器延迟时间

2、并发用户数

一般为10%同时操作人数

并发用户数即业务并发用户数

同时在线用户人数(即整个业务系统的并发用户数)

估算并发用户数具体数值

C=nL/T

n是login session的数量 L是login session时间段的平均时间长度

T是考察的时间段长度

login session "用户从登陆进入系统到退出系统的时间段"

并发峰值约等于C+3根号C

经验公式C=n/10

            并发峰值约等于r*C

3、吞吐量 "单位时间内系统处理的客户请求数量"

                吞吐量两个方面发挥作用

                (1)估算事务发生频率(2)测试场景是否达到预期目标或遇到瓶颈用吞吐量测试发现性能瓶颈。

                字节数/秒方式表示的吞吐量主要受服务器架构,应用服务器制约

                无瓶颈时 吞吐量F=并发用户数*每秒点击数

4、思考时间 即休眠时间

性能测试方法论

1、SEI负载测试计划过程

目标:产生一个清晰,好理解,可验证的负载计划。内容:目标,用户,用例,生产环境,测试环境,测试环境。

2、RBI方法

目标:快速识别性能瓶颈。内容:重点测试“吞吐量”指标,因为RBI认定80%的系统瓶颈由吞吐量造成。按照网络、硬件、数据库、应用服务器、代码的顺序自上而下分析。需使用分析模块。

3、性能下降曲线分析法

目标:性能 随着用户数的增加而下降趋势的曲线分析、查看性能下降的环境点与上下文。确定性能阀值。内容:通过单用户区域、性能平坦区域、压力区域、性能拐点进行监控和分析。

4、配置测试

通过对系统的软件/硬件的调整,了解各个不同的环境对系统性能影响的程度。

5、并发测试

是否有内存泄露 是否有死锁

6、可靠性测试

通过系统给系统加载一定的业务(80%~90%CPU使用率),让应用系统运行一段时间。测试系统是否稳定运行。

7、失效恢复测试

当问题发生时 “能支持多少用户访问”

“有多少功能不能使用”

性能测试分析方法(着重于PTGM方法论)

1、能力验证

能力验证一般采用这样的描述:“该系统是否能在A条件下具备B能力?”

(1)充分准备一下内容:硬件设备、软件环境、网络条件、基础数据

(2)充分准备测试场景:性能测试方法、可靠性测试、压力测试、失效恢复测试

2、规划性能

“应该如何才能使系统具有我们要求的性能能力”

“应该如何调整系统配置,使系统能够满足用户增长的需要”

 负载测试、配置测试、压力测试

3、性能调优

(1)确定基准环境、基准负载和基准性能指标

(2)调整系统运行环境和实行方法,执行测试。

(3)记录结果、进行分析

比如在J2EE性能测试中常见的错误,对于某些建立在J2EE/EJB技术上的应用,在服务器启动的时候,没有注意到测试之前首先进行一段时间的预热,这是因为JAVA语言的hot-spot等技术决定的。

分析方法 

1、内存分析方法

(1)首先查看Memery Available bytes

       判断是否有内存泄露

(2)注意Pages/sec:持续高至数百,则可能内存有问题

              Pages Read/sec:超过5有问题,阀值为5

              Pages Fault/sec:每秒页面失效次数

(3)根据Physical Disk计数器分析性能瓶颈

        Disk Readwrites/sec:每秒读写次数

        %Disk Time:操作等待时间的百分比

        Average Disk Queuelength:该值为不超过磁盘数(1.5~2)倍平均磁盘操作队列长度

2、处理器分析方法

(1)首先查看System/%Total Processor Time

        体现所有CPU的平均利用率

(2)查看每个CPU的Processon/% Processor Time 和 Processor/% User Time 和 Processor /%  Privilegod Time

        Processor/% User Time 非核心操作消耗的CPU时间一般算法程序问题。

(3)研究系统处理器瓶颈 (1)查看system/processor Queue length 当此值大于CPU数量的总数+1时,说明产生了CPU阻塞

        Processor Queue Length:当前服务器作业的线程数,一个CPU有2个线程数在作业中就表示堵塞。(2)%DPC TIME:CPU消耗在网络处理上的时间,越低越好,加入网卡可降低此消耗。

3、磁盘I/O分析方法

 (1)计算每个磁盘的I/O数

         RAID N 规范下

         I/O数=f(writes reads)/number of disks

 (2)根据Disk sec/Transfer进行分析

     在磁盘上写入数据的平均时间

     小于15ms excellent 介于15ms-30ms之间良好30-60之间为可疑接受260ms更换硬盘或RAID方式

 4、进程分析法

(1)查看每个进程的%Processor Time 找出高消耗资源的进程

(2)查看每个进程的页面生效数(Process/Page Failures/sec)

(3)查看进程的Process/Private Bytes看进程是否内存泄露

这篇关于性能测试杂论的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/461548

相关文章

Python如何使用__slots__实现节省内存和性能优化

《Python如何使用__slots__实现节省内存和性能优化》你有想过,一个小小的__slots__能让你的Python类内存消耗直接减半吗,没错,今天咱们要聊的就是这个让人眼前一亮的技巧,感兴趣的... 目录背景:内存吃得满满的类__slots__:你的内存管理小助手举个大概的例子:看看效果如何?1.

Redis中高并发读写性能的深度解析与优化

《Redis中高并发读写性能的深度解析与优化》Redis作为一款高性能的内存数据库,广泛应用于缓存、消息队列、实时统计等场景,本文将深入探讨Redis的读写并发能力,感兴趣的小伙伴可以了解下... 目录引言一、Redis 并发能力概述1.1 Redis 的读写性能1.2 影响 Redis 并发能力的因素二、

Golang中拼接字符串的6种方式性能对比

《Golang中拼接字符串的6种方式性能对比》golang的string类型是不可修改的,对于拼接字符串来说,本质上还是创建一个新的对象将数据放进去,主要有6种拼接方式,下面小编就来为大家详细讲讲吧... 目录拼接方式介绍性能对比测试代码测试结果源码分析golang的string类型是不可修改的,对于拼接字

mysql线上查询之前要性能调优的技巧及示例

《mysql线上查询之前要性能调优的技巧及示例》文章介绍了查询优化的几种方法,包括使用索引、避免不必要的列和行、有效的JOIN策略、子查询和派生表的优化、查询提示和优化器提示等,这些方法可以帮助提高数... 目录避免不必要的列和行使用有效的JOIN策略使用子查询和派生表时要小心使用查询提示和优化器提示其他常

SpringBoot中整合RabbitMQ(测试+部署上线最新完整)的过程

《SpringBoot中整合RabbitMQ(测试+部署上线最新完整)的过程》本文详细介绍了如何在虚拟机和宝塔面板中安装RabbitMQ,并使用Java代码实现消息的发送和接收,通过异步通讯,可以优化... 目录一、RabbitMQ安装二、启动RabbitMQ三、javascript编写Java代码1、引入

Nginx设置连接超时并进行测试的方法步骤

《Nginx设置连接超时并进行测试的方法步骤》在高并发场景下,如果客户端与服务器的连接长时间未响应,会占用大量的系统资源,影响其他正常请求的处理效率,为了解决这个问题,可以通过设置Nginx的连接... 目录设置连接超时目的操作步骤测试连接超时测试方法:总结:设置连接超时目的设置客户端与服务器之间的连接

Springboot中分析SQL性能的两种方式详解

《Springboot中分析SQL性能的两种方式详解》文章介绍了SQL性能分析的两种方式:MyBatis-Plus性能分析插件和p6spy框架,MyBatis-Plus插件配置简单,适用于开发和测试环... 目录SQL性能分析的两种方式:功能介绍实现方式:实现步骤:SQL性能分析的两种方式:功能介绍记录

Tomcat高效部署与性能优化方式

《Tomcat高效部署与性能优化方式》本文介绍了如何高效部署Tomcat并进行性能优化,以确保Web应用的稳定运行和高效响应,高效部署包括环境准备、安装Tomcat、配置Tomcat、部署应用和启动T... 目录Tomcat高效部署与性能优化一、引言二、Tomcat高效部署三、Tomcat性能优化总结Tom

C#使用yield关键字实现提升迭代性能与效率

《C#使用yield关键字实现提升迭代性能与效率》yield关键字在C#中简化了数据迭代的方式,实现了按需生成数据,自动维护迭代状态,本文主要来聊聊如何使用yield关键字实现提升迭代性能与效率,感兴... 目录前言传统迭代和yield迭代方式对比yield延迟加载按需获取数据yield break显式示迭

Java实现任务管理器性能网络监控数据的方法详解

《Java实现任务管理器性能网络监控数据的方法详解》在现代操作系统中,任务管理器是一个非常重要的工具,用于监控和管理计算机的运行状态,包括CPU使用率、内存占用等,对于开发者和系统管理员来说,了解这些... 目录引言一、背景知识二、准备工作1. Maven依赖2. Gradle依赖三、代码实现四、代码详解五