性能测试常见问题总结

01 硬件上的性能瓶颈

指的是CPU、内存、I/O读写速率,磁盘空间方面的问题。

02 网络上的性能瓶颈

指的网络带宽,网络波动,延时,丢包等。

03 应用程序上的性能瓶颈

指的是开发人员新开发出来的应用程序。

04 数据库的性能瓶颈

指的是数据库索引,锁,表空间,慢sql,数据量等影响。

05 中间件的性能瓶颈
比如:超时设置,线程池设置,缓存策略,最大连接数,负载均衡策略等等。

常 见 问 题

一、容量(压力)测试过程中cpu过高

这个要考虑压了多少用户

结果:cpu却到了80%多,指标是不能超过60%。

解决思路:如果是cpu过高,先把消耗cpu最多的进程找出来(top命令),再找到该线程下消耗cpu过高的是哪几个线程,再把该线程处理掉

二、内存溢出(堆溢出、栈溢出、持久代溢出)

解决思路:1、调整堆内存参数,一般是增加堆内存

2、减少批处理数据量

三、线程死锁:容量(压力)测试压测一段时间后,报连接超时

解决思路:

1、造成这种现象的原因很多,比如带宽不够,中间件线程池不够用,数据库连接池不够,连接数占满等都会造成连接不上而报超时 错误

2、找到死锁的线程,分析对应的代码

四、数据库死锁

解决思路:

1、造成这种现象的原因很多,比如带宽不够,中间件线程池不够用,数据库连接池不够,连接数占满等都会造成连接不上而报超时错误。

2、(重点)数据库日志中搜索block,能搜到block的话就是存在数据库死锁,找到日志,查看对应的sql,优化造成死锁的sql。

五、数据库连接池不释放

去mysql数据库查看应用程序到数据库的连接有多少个。

通过命令:

show variables like ‘%max_connections%’; 查询设置的最大连接数;

show status like 'Threads%'查询当前的连接数是多少

show processlist/show full processlist;

如果当前连接数大于等于最大连接数,说明数据库连接池被占满,需要把最大连接数修改大一点。

通过日志分析或者查看代码,数据库连接部分是不是有创建连接但是没有关闭连接的情况。基本就是这种情况导致的,修改代码即可。

六、压力测试中TPS一直上不去

1、网络带宽

分析思路:

在压力测试中,有时候要模拟大量的用户请求,如果单位时间内传递的数据包过大,超过了带宽的传输能力,那么就会造成网络资源竞争,间接导致服务端接收到的请求数达不到服务端的处理能力上限。

2、连接池

可用的连接数太少,造成请求等待。连接池一般分为服务器连接池(比如Tomcat)和数据库连接池(或者理解为最大允许连接数也行)。

3、数据库配置

高并发情况下,如果请求数据需要写入数据库,且需要写入多个表的时候,如果数据库的最大连接数不够,或者写入数据的SQL没有索引没有绑定变量,抑或没有主从分离、读写分离等,就会导致数据库事务处理过慢,影响到TPS。

4、硬件资源

包括CPU(配置、使用率等)、内存(占用率等)、磁盘(I/O、页交换等)。

5、业务逻辑

业务解耦度较低,较为复杂,整个事务处理线被拉长导致的问题。

 

总结:

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

 

          视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。

  • 31
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是常见的性能测试面试题目及答案,供参考: 1. 什么是性能测试?为什么要进行性能测试? 答:性能测试是一种测试类型,用于评估系统在特定条件下的响应时间、吞吐量、资源利用率和稳定性等方面的表现。进行性能测试可以发现系统的瓶颈,优化系统,提高用户体验并确保系统在高负载条件下稳定运行。 2. 性能测试的阶段是什么?请简要介绍每个阶段的内容。 答:性能测试的阶段通常包括:需求分析、测试计划、测试设计、测试执行、测试分析和报告。其,需求分析阶段是为了确定测试的目的、范围和目标用户;测试计划阶段是为了制定测试计划,包括测试策略、测试环境、测试工具和测试资源等;测试设计阶段是为了设计测试场景、测试数据和测试用例;测试执行阶段是为了执行测试并记录测试结果;测试分析阶段是为了分析测试结果并发现系统的瓶颈;报告阶段是为了总结测试结果并提出优化建议。 3. 性能测试的常见指标有哪些?请简要介绍每个指标的含义。 答:性能测试的常见指标包括响应时间、吞吐量、并发用户数、资源利用率和稳定性等。其,响应时间指用户发出请求到收到响应的时间;吞吐量指单位时间内能处理的请求数量;并发用户数指系统能同时处理的用户数;资源利用率指系统资源的利用率,包括 CPU、内存、磁盘和网络等;稳定性指系统在高负载条件下的稳定运行能力。 4. 性能测试的负载模型有哪些?请简要介绍每个负载模型的特点。 答:性能测试的负载模型包括均衡负载、逐步增加负载、峰值负载和压力测试等。其,均衡负载指在测试期间保持稳定的负载;逐步增加负载指逐步增加负载直到系统达到极限;峰值负载指在某个时间点内突然增加负载,测试系统的瞬时响应能力;压力测试指在长时间内保持高负载,测试系统的稳定性。 5. 性能测试的常用工具有哪些?请简要介绍每个工具的特点。 答:性能测试的常用工具包括 LoadRunner、JMeter、Gatling、Locust 和 Artillery 等。其,LoadRunner 是商业工具,支持多种协议和平台;JMeter 是开源工具,支持多种协议和插件;Gatling 是基于 Scala 的开源工具,支持高并发和多协议;Locust 是 Python 编写的开源工具,支持分布式和多协议;Artillery 是 Node.js 编写的开源工具,支持多协议和分布式测试。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值