性能测试常见问题总结

news2024/12/26 0:23:48

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、业务逻辑

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

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你! 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1224444.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何实现一个下班倒计时程序

shigen日更文章的博客写手,擅长Java、python、vue、shell等编程语言和各种应用程序、脚本的开发。记录成长,分享认知,留住感动。 Hello伙伴们,好几天不见啦。最近也是晚上打球太累,加上一直在研究mybatis的多租户问题&…

风光能互补发电庭院路灯系统技术原理

风光互补发电系统是由风力发电机组配合太阳能电池组件组成,通过专用的控制逆变器,将风力发电机输出的低压交流电整流成直流电,并与光伏电池组件输出的直流电汇集在一起,充入蓄电池组,实现稳压、蓄能和逆变全过程&#…

Web前端—移动Web第二天(空间转换、动画、综合案例:全名出游)

版本说明 当前版本号[20231118]。 版本修改说明20231118初版 目录 文章目录 版本说明目录移动 Web 第二天01-空间转换空间转换简介平移视距旋转左手法则rotate3d-了解立体呈现案例-3d导航缩放 02-动画动画实现步骤animation复合属性animation拆分写法案例-走马灯精灵动画多组…

K-Means算法进行分类

已知数据集D中有9个数据点,分别是(1,2),(2,3), (2,1), (3,1),(2,4),(3,5),(4,3),(1,5),(4,2)。采用K-Means算法进行聚类,k2,设初始中心点为(1.1,2.2),(2.3,3.…

k8s上Pod生命周期、重启策略、容器探测简介

目录 一.Pod的创建过程 二.Pod的终止过程 三.Pod的重启策略(restartPolicy) 1.Always 2.OnFailture 3.Never 4.示例 四.Pod生命周期内的5种状态(相位) 1.Pending 2.Running 3.Succeeded 4.Failed 5.Unknown 五.初始…

号卡分销管理系统搭建

随着移动互联网的发展,各种手机应用层出不穷,其中包括了很多用于企业管理的软件。号卡系统分销管理软件就是其中的一种。它是一种基于移动互联网的企业管理软件,能够帮助企业进行号卡的分销管理,从而提高企业的效率和竞争力。 …

OpenAI发布会中不起眼的重大更新

上周,OpenAI的历史首届开发者大会上,OpenAI的首席执行官山姆奥特曼展示了一系列产品更新,包含了众多重磅功能,就算单独拿出来都能让科技圈震一震,一下能发布这么多也真是家底厚。 果不其然,接下来的一周&am…

C#实现观察者模式

观察者模式是一种软件设计模式,当一个对象的状态发生变化时,其所有依赖者都会自动得到通知。 观察者模式也被称为“发布-订阅”模式,它定义了对象之间的一对多的依赖性,当一个对象状态改变时,所有依赖于它的对象都会得…

Unity 6 是下一个 LTS 版本即将发布

Unity 公司宣布,即将发布 Unity 6,并表示其为下一个长期支持版本 (LTS)。 Unity 在大会上演示了全新的 Unity 6引擎,并通过 Syncy Studios 采用 Unity 6 制作的《幻想王国(Fantasy Kingdom)》Demo 进行了演示&#xff…

C#单例模式懒汉式与饿汉式

单例模式一般分为懒汉模式和饿汉模式,懒汉式单例在第一次引用时创建实例,不是在类加载时;饿汉式单例模式是一种在类加载时就创建实例的方式,因此也称为静态初始化。 单例模式实现的技巧时构造私有,向外提供静态实例。…

键鼠自动化2.0展示

软件介绍:桌面键鼠自动化工具 Qtc 编写: 本软件采用Qt C编写,旨在提供高效、跨平台的桌面键鼠自动化解决方案。Qt C框架的选择确保了软件的稳定性、可靠性,并通过其图形用户界面实现了用户友好的操作体验。 鼠标移动与点击&#…

目标检测—YOLO系列(二 ) 全面解读复现YOLOv1 PyTorch

精读论文 前言 从这篇开始,我们将进入YOLO的学习。YOLO是目前比较流行的目标检测算法,速度快且结构简单,其他的目标检测算法如RCNN系列,以后有时间的话再介绍。 本文主要介绍的是YOLOV1,这是由以Joseph Redmon为首的…

不动产数据质量提升_电子档案挂接

前言 做了不动产数据质量提升项目,其中包括集体土地所有权档案扫描、挂接。扫描的工作已经完成了,现在需要进行电子档案挂接。正常来说通过不动产系统技术支撑单位的批量挂接功能,但现实是一言难尽。   尝试过进行抓包分析,提交…

快速集成Skywalking 9(Windows系统、JavaAgent、Logback)

目录 一、Skywalking简介二、下载Skywalking服务端三、安装Skywalking服务端3.1 解压安装包3.2 启动Skywalking 四、关于Skywalking服务端更多配置五、Java应用集成skywalking-agent.jar5.1 下载SkyWalking Java Agent5.2 集成JavaAgent5.3 Logback集成Skywalking5.4 集成效果 …

036、目标检测-锚框

之——对边缘框的简化 目录 之——对边缘框的简化 杂谈 正文 1.锚框操作 2.IoU交并比 3.锚框标号 4.非极大值抑制 5.实现 拓展 杂谈 边缘框这样一个指定roi区域的操作对卷积神经网络实际上是很不友好的,这可能会对网络感受野提出一些特定的要求&#xff0…

电子电器架构 —— 车载网关边缘节点总线转换

电子电器架构 —— 车载网关边缘节点路由转发策略 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 PS:小细节,本文字数3000+,详细描述了网关在车载框架中的具体性能设置。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 没有人关注你。也无…

物联网AI MicroPython学习之语法 SPI串行外设通信

学物联网,来万物简单IoT物联网!! SPI 介绍 模块功能: SPI串行外设驱动 接口说明 SPI - 构建SPI对象 函数原型:SPI(id, baudrate,polarity, phase,sck, mosi, miso)参数说明: 参数类型必选参…

mysql 中with的用法(3)

有表(tb),数据如下: 请用SQL,生成如下的样式: 一、建表 CREATE TABLE tb (id varchar(3) DEFAULT NULL,pid varchar(3) DEFAULT NULL,name varchar(64) DEFAULT NULL ) INSERT INTO tb (id, pid, name) VALUES(002, 0, 浙江省)…

【RH850芯片】RH850U2A芯片平台Spinlock的底层实现

目录 前言 正文 1.RH850U2A上的原子操作 1.1 Link 1.2 Link generation 1.3 Success in storing 1.4 Failure in storing 1.5 Condition for successful storing 1.6 Loss of the link 1.7 示例代码 2.Spinlock代码分析 2.1 尝试获取Spinlock 2.2 释放Spinlock …

一款带数字传输信号的OVP芯片

基本概述 今天给大家介绍的一款芯片是OVP,相比于传统的OVP芯片来说,这款芯片新增了数字信号控制,可以进行10Mbps的一个通信,通过外部的GPIO口进行控制,达到输入与输出信号的产生。 YHM2009这款OVP芯片具有较低的导通…