5年经验之谈 —— 性能测试中故障排查及解决方法!

news2025/1/21 11:59:37

引言: 在进行性能测试过程中,同事反馈报错率突然攀升。通过查看相关日志和服务器状态,发现了一些关键信息。本文将详细介绍导致报错率攀升的原因,并提供相应的解决方法。

1. 问题背景

在使用JMeter进行性能测试时,我们注意到报错率开始出现异常增长,这引起了我们的关注。为了找出问题所在,我们首先查看了Pinpoint监控和Nginx日志。

2. 分析结果

2.1 Pinpoint监控

从Pinpoint监控的反馈中,我们得到了以下错误信息:

502 Bad Gateway: "<html><EOL><EOL><head><title>502 Bad Gateway</title></head><EOL><EOL><body><EOL><EOL><center><h1>502 Bad Gateway</h1></center><EOL><EOL><hr><center>nginx/1.25.0</center><EOL><EOL></body><EOL><EOL></html><EOL><EOL>"

该错误表明网关出现问题,无法连接到上游服务器。进一步分析Nginx日志可以帮助我们了解更多情况。

2.2 Nginx日志

通过查看Nginx日志,我们发现大量的以下错误:

2023/08/24 15:27:36 [error] 1237#0: *2627178 no live upstreams while connecting to upstream, client: 192.168.0.98, server: , request: "GET /xxx/api/getxxx/Arxxx HTTP/1.1", upstream: "http://xxxserver/gaxxx/api/getxx/ArBxx", host: "192.168.0.96"

这些错误表明无法连接到上游服务器,并指向了一个具体的请求路径。进一步分析发现,无法连接的上游服务器为应用服务(192.168.0.98),而Nginx服务为192.168.0.96。

3. 问题定位与解决

通过以上分析,我们可以得出以下结论:

  • 报错率攀升是由于应用服务(192.168.0.98)无法连接到Nginx服务(192.168.0.96)引起的。
  • 应用服务日志未显示任何问题,因此需要进行更深入的排查。

3.1 线程转储操作

为了进一步分析问题,执行了线程转储操作。通过转储文件,发现大量的线程阻塞的情况。线程阻塞可能会导致应用程序无法正常处理请求,从而导致报错率上升。

Attaching to process ID 29674, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 25.191-b12
Deadlock Detection:

No deadlocks found.

Thread 6572: (state = BLOCKED)
 - sun.misc.Unsafe.park(boolean, long) @bci=0 (Compiled frame; information may be imprecise)
 - java.util.concurrent.ForkJoinPool.awaitWork(java.util.concurrent.ForkJoinPool$WorkQueue, int) @bci=350, line=1824 (Compiled frame)
 - java.util.concurrent.ForkJoinPool.runWorker(java.util.concurrent.ForkJoinPool$WorkQueue) @bci=44, line=1693 (Compiled frame)
 - java.util.concurrent.ForkJoinWorkerThread.run() @bci=24, line=157 (Interpreted frame)

3.2 优化措施

将转储文件发送给相应的产品开发人员进行分析和优化非常重要。开发人员可以通过分析线程状态、锁竞争等信息来确定阻塞的原因。他们可以采取以下措施来解决问题:

  • 优化代码逻辑:检查应用程序是否存在性能瓶颈,如循环、数据库操作等。
  • 减少线程阻塞:通过使用异步操作、线程池等技术减少线程阻塞情况。
  • 调整系统资源配置:检查应用服务器的内存、CPU等资源配置是否合理,并进行相应调整。

4. 总结

对于性能测试中报错率攀升的情况,我们通过分析Pinpoint监控、Nginx日志和线程转储文件,定位了问题所在并提出了相应的解决方法。及时监控系统状态、分析日志、执行线程转储操作以及优化应用程序都是关键的步骤。通过这些措施,我们可以改善系统性能,并确保系统能够稳定运行。

在进行性能测试过程中,我们应该充分利用各种工具和技术,及时发现和解决问题,确保系统在高负载情况下仍能保持可靠和高效。只有这样,我们才能提供优质的用户体验,并为系统的持续发展奠定坚实的基础。

下面是配套学习资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!

软件测试面试小程序

被百万人刷爆的软件测试题库!!!谁用谁知道!!!全网最全面试刷题小程序,手机就可以刷题,地铁上公交上,卷起来!

涵盖以下这些面试题板块:

1、软件测试基础理论 ,2、web,app,接口功能测试 ,3、网络 ,4、数据库 ,5、linux

6、web,app,接口自动化 ,7、性能测试 ,8、编程基础,9、hr面试题 ,10、开放性测试题,11、安全测试,12、计算机基础

资料获取方式 :

 

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

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

相关文章

vue、elementui控制前一级选择后,后一级才会有数据

<el-form-item label"废物类型&#xff1a;"><el-select clearable v-model"queryForm.hswCateType" placeholder"请选择" change"industryCategoryChange" focus"industryCategoryFocus"><el-option v-for&…

微软用 18 万行 Rust 重写了 Windows 内核

微软正在使用 Rust 编程语言重写其核心 Windows 库。 5 月 11 日——Azure 首席技术官 Mark Russinovich 表示&#xff0c;最新的 Windows 11 Insider Preview 版本是第一个包含内存安全编程语言 Rust 的版本。 “如果你参加了 Win11 Insider 环&#xff0c;你将在 Windows 内…

C语言“牵手”天猫商品详情数据方法,天猫商品详情API接口申请指南

天猫商城平台是阿里巴巴集团旗下的一个综合性购物网站。 天猫商城的前身是淘宝商城&#xff0c;于2012年1月11日上午更名。天猫是一个整合数千家品牌商、生产商&#xff0c;为商家和消费者之间提供一站式解决方案的B2C&#xff08;Business-to-Consumer&#xff0c;商业零售&a…

干货!证书超实用小Tips

1.CSA 是加拿大标准协会(Canadian Standards Association)的简称&#xff0c;它成立于1919年&#xff0c;是加拿大首家专为制定工业标准的非盈利性机构。在北美市场上销售的电子、电器等产品都需要取得安全方面的认证。 2.EAC认证 是海关联盟国家的认证。海关联盟是由俄罗斯…

C# WPF监听USB插入拨出

可以全部监听。好用 private void FormF100WriteCortexLicense_Load(object sender, EventArgs e){this.Text this.Text " " FT_Tools.Program.version;USB USBWatcher new USB();USBWatcher.AddUSBEventWatcher(USBEventHandler, USBEventHandler, new TimeSpa…

【MongoDB系列】3. MongoDB 安全策略:验证和授权

前言 前面文章中通过客户端工具&#xff08;MongoDB Shell、Robo 3T&#xff09;连接 MongoDB 服务时&#xff0c;只要有 IP 地址和端口号&#xff0c;就能连接到数据库&#xff0c;之后就能操作数据库。这是因为默认安装的 MongoDB 没有启用身份验证&#xff0c;也没有设置初…

PlotAI = Matplotlib + AI

PlotAI是在 Python 和 Matplotlib 中创建绘图的最简单方法&#xff0c;它使用 LLM 生成Python代码和Matplotlib绘图。 推荐&#xff1a;用 NSDT编辑器 快速搭建可编程3D场景 1、PlotAI简介 PlotAI的思路&#xff1a; 用户提供输入数据框和提示。PlotAI 构建了 LLM 的提示&…

代码随想录打卡—day46—【DP】— 8.29 背包END

1 139. 单词拆分 139. 单词拆分 做了很久...估计2h 一开始我的思路卡死了 看题解之后的思路的详解见注释&#xff0c; 我的写法和carl 答案在一些微小的细节上略有不同&#xff0c;我的更好理解&#xff0c;但他的解法更简单。 我写的过程中&#xff0c;需要注意下标和字符…

记一次空字符串判断的大坑

1. 控制台打印数据如下 2.尝试做判断 如图我肉眼看到的是 " " 于是我做了如下判断 结果竟然是false 我做了修改 竟然还是false 3. 开始各种转数据类型 发现了问题,空字符串的布尔值应该是false,但是这个玩意儿是true 4. 查看数据 我发现在往控制台粘贴数据时,是个…

SAP SD之如何定义销售组织(Sales Organization)

目录 前言 一、注意点 二、创建步骤 1.Step By Step 总结 前言 SAP中的销售组织是SD中的最高级别组织单位&#xff0c;负责公司中发生的所有销售和服务活动。销售组织是根据公司的销售需求在SAP中定义的。控制向客户销售、谈判销售等条款。它只能分配给一个公司代码和一个…

Python(Web时代)—— Django数据库整合

简介 ORM框架介绍 ORM&#xff08;Object Relation Mapping&#xff09;框架&#xff0c;可以帮助我们把类和数据表进行一个映射&#xff0c;让我们可以通过类和类对象来直接操作数据库中的数据。 优势&#xff1a;根据对接的数据库引擎翻译成对应的sql语句&#xff0c;所以…

平均值和方差的点估计、区间估计

0&#xff0c;预备知识 0.1&#xff0c;中心极限定理 0.2&#xff0c;均值的标准误差 0.3&#xff0c;卡方分布 1&#xff0c;总体均值的无偏估计量 2.1&#xff0c;当总体方差已知时对样本均值的描述&#xff08;Z统计量&#xff09; 2.2&#xff0c;当总体方差未知时对样本均…

RabbitMq深度学习

什么是RabbitMq? RabbitMQ是一个开源的消息队列中间件&#xff0c;它实现了高级消息队列协议&#xff08;AMQP&#xff09;。它被广泛用于分布式系统中的消息传递和异步通信。RabbitMQ提供了一种可靠的、可扩展的机制来传递消息&#xff0c;使不同的应用程序能够相互之间进行…

成都优优聚:美团代运营趋势在哪儿?

美团代运营作为一种经营模式&#xff0c;在当今日益竞争激烈的市场中扮演着重要的角色。它为商家提供了全方位的服务&#xff0c;从市场推广到订单管理&#xff0c;从团购券的制作到售后服务&#xff0c;帮助商家解决了运营中的各种难题。 首先&#xff0c;美团代运营的核心优势…

重磅OpenAI发布ChatGPT企业版本

8月29日凌晨&#xff0c;Open AI官网发布ChatGPT企业版本&#xff01; 企业版简介&#xff1a; ChatGPT企业版提供企业级安全和隐私、无限的高速 GPT-4 访问、用于处理更长输入的更长上下文窗口、高级数据分析功能、自定义选项等等。人工智能可以协助和提升我们工作生活的各个…

DEA创建maven项目,项目结构无src目录和pom.xml文件内容

File > Settings > Build,Execution,Deployment > Build Tools > Maven > Runnner,界面中VM Options 输入框中填入-DarchetypeCataloginternal&#xff0c;重启IDEA&#xff0c;打开即会有src目录和pom.xml文件。 -DarchetypeCataloginternal -DarchetypeCatal…

【校招VIP】产品思维设计之用户需求分析

考点介绍&#xff1a; 理解用户需求时需要我们在看待产品的时候不能以我们创造者的专业身份来看&#xff0c;而需要用同理心&#xff0c;将自己转变为一个产品的典型用户&#xff0c;才能准确挖掘到用户心底最真实的诉求。 『产品思维设计之用户需求分析』相关题目及解析内容可…

新版白话空间统计(26)标准距离

前文再续&#xff0c;书接上一回。 上次我们讲了方向分布工具&#xff0c;这个工具会生成一个标准差椭圆&#xff0c;其中有这样的一句话描述&#xff1a; “短半轴表示数据分布的范围&#xff0c;短半轴越短&#xff0c;表示数据呈现的向心力越明显&#xff1b;反之&#xf…

探索OLED透明屏的优缺点:引领科技未来的革命性突破

OLED透明屏作为一项革命性的创新技术&#xff0c;其令人惊叹的透明度和柔性性能引起了全球范围内的关注。 然而&#xff0c;了解OLED透明屏的优缺点对于我们全面认识其在科技未来中的地位至关重要。 今天&#xff0c;尼伽将深入探讨OLED透明屏的优势和限制&#xff0c;并借助…

耐世特Nexteer EDI解决方案

耐世特Nexteer曾经为美国通用汽车全资子公司&#xff0c;是一家集研发、制造、销售于一体的全球化集团公司。耐世特汽车系统公司是转向系统及相关先进技术的全球供应商。该公司为60多家汽车制造商设计、制造、销售电动助力转向器、液压助力转向器、转向管柱和传动轴产品&#x…