首页 > 其他分享 >(性能测试)--记录一次高可用场景导致CPU资源升高

(性能测试)--记录一次高可用场景导致CPU资源升高

时间:2024-06-04 17:59:06浏览次数:19  
标签:场景 java -- 限流 线程 CPU

测试场景:高可用场景--限流测试;

被测交易:查询类交易,HTTP协议;

交易链路:jmeter - web - coimpre(前置服务) -- coimbp -- cobp (coimbp 、coimpre 都会访问同一个数据库);

注:cobp 为合肥机房,其他服务均为北京机房,要注意跨网段存在网络延迟(会导致TPS波动情况);

场景配置:配置coimpre 服务的限流参数;

场景执行:执行场景使TPS 大于 限流参数,出发限流报错,可通过日志以及服务返回确认是否成功触发限流;

测试问题:交易触发限流后,监控coimpre服务CPU资源,从5% 上升至 90%以上,两次i验证执行,确认问题存在;

排查思路:

  1. 使用top命令监控消耗CPU高的进程是否为java服务,(程序为java开发);

  2. 使用top -Hp pid 查看进程下的线程消耗进一步确认是哪个线程消耗;

  

   3. 打印线程dump文件,分析dump文件查看该线程此时的业务操作‘(第一个图是 linux下 jcmd生成的,第二个是使用的 java VisualVM 生成的)

  

  

     4. 定位问题,给出优化意见,测试验证;

    4.1 通过dump文件分析,有问题的线程主要是在java net.URClassLoader.findResouce()方法,通过第一个图可以看到java util.zip,ziprile getentry,结合两个方法,并通过和开发沟通是否对某个 ZIP 文件中文件文件有操作。

    4.2 项目组确认,交易报错后,日志会打印错误信息并带出是哪个jar包导致的错误,从而就会遍历整个jar目录。

    4.3 共同认定是该问题导致的cpu升高,开发人员修改此处代码,不再遍历jar。

    4.4 修改后,重新部署版本,再次验证限流,cpu资源下降至10%

标签:场景,java,--,限流,线程,CPU
From: https://www.cnblogs.com/wanggfIT/p/18231391

相关文章

  • Elixir学习笔记——第一章
    本指南将向您介绍Elixir基础知识-语言语法、如何定义模块、语言中的常见数据结构等。本章将重点介绍如何确保安装了Elixir,以及您可以成功运行Elixir的交互式Shell(称为IEx)。安装如果您尚未安装Elixir,请访问我们的安装页面。完成后,您可以运行elixir--version以获......
  • 悟道
    悟道写在前面的由于长期把\(qq\)空间和微信朋友圈当日记使用(正常人谁写日记......
  • CDGA|数据污染不容小觑,数据治理策略助你轻松应对!
    在数字化时代,数据已经成为企业运营、决策和创新的重要驱动力。然而,随着数据的爆炸式增长,数据污染问题也日益凸显,给企业的数据质量和业务发展带来了严峻的挑战。数据污染不仅可能导致分析结果失真,还可能误导决策,影响企业的竞争力和长期发展。因此,建立有效的数据治理策略,成为企......
  • java检测当前CPU负载状态的方法
    1.java检测当前CPU负载状态在Java中,直接检测CPU负载状态并不像在操作系统命令行中那样简单,因为Java标准库并没有直接提供这样的功能。但是,我们可以通过几种方法间接地获取CPU负载信息:(1)使用操作系统命令:我们可以通过执行特定的系统命令(如top、mpstat、uptime等)来获取CPU负载信息,......
  • 2024年5月信息系统项目管理师(高级)考试综合知识真题及参考答案
    1、关于项目可行性研究的描述不正确的是()A.初步可行性研究报告,必须包含项目的主要投资支出B.初步的可行性研究报告可作为正式文件,支持项目决策C.初步可行性研究报告的核心内容不包括项目进度安排D.初步可行性研究是详细可行性研究的基础[参考答案]C2、信息系统战略......
  • etherjs估算gasLimit(调用estimateGas方法)的两种方式
    前言:一种是provider,一种是signer  方式一:直接获取constEtherJS=require('etherjs');//创建一个Provider实例,指向你的以太坊节点constprovider=newEtherJS.providers.JsonRpcProvider('http://localhost:8545');//构造一个交易consttransaction={to:......
  • 企业DCMM认证:如何精准定位,选择最佳级别?
    随着信息技术的迅猛发展,数据已经成为企业核心竞争力的重要组成部分。因此,数据管理能力成熟度评估模型(DCMM)认证逐渐受到越来越多企业的关注。选择合适的DCMM认证级别对于提升企业数据管理能力和竞争力至关重要。本文将介绍如何根据企业实际情况选择适合的DCMM认证级别。了解DC......
  • 一道电梯题,暴打国产大模型!
    下班的时候等电梯,无聊拍了一张图,于是拿来“调戏”下各家的大模型。我把这张照片PO给大模型,问了ta们这样一个问题↓我在30层等电梯,图片描述了当前电梯的运行状态。假设电梯每1秒钟可以上升或下降一层,不考虑开关门的时间,其他楼层也不存在乘坐电梯的人。那么,我最快要多久......
  • 【转】[VS] 把.nuget文件夹从C盘移到其它盘
    转自:https://blog.csdn.net/Henry_Wu001/article/details/1358256991、用命令查看缓存文件夹的具体路径:dotnetnugetlocalsall--list会出现大概下面的结果: 其中“global-packages:”开头的这行就是这个缓存的位置。上面的图片中,我的是E盘,是因为我已经移动过了。你看到的......
  • 免费使用TasteWP一键搭建线上临时WordPress网站
    虽然用宝塔面板或者1Panel面板可以非常快速的搭建一个WordPress网站,但是有时候只想测试下我设计的页面或者开发的主题和插件,又得买服务器,绑定域名,安装程序,搭建起来也过于浪费时间了;再或者,我只想学习WordPress基础操作,从零开始搭建还是过于困难,因此,今天我推荐一个特别好用的工具:Tas......