当前位置: 首页 > news >正文

Arthas解决CPU飙高和定位死锁问题,JProfiler解决OOM问题

文章目录

  • Arthas定位CPU飙高
  • Arthas定位死锁
  • JProfiler定位OOM

Arthas下载地址:
https://github.com/alibaba/arthas/releases/download/arthas-all-4.0.4/arthas-bin.zip
下载之后进入找到arthas-boot.jar,然后执行以下命令

java -jar arthas-boot.jar

选择你需要监控的进程输入序号即可
在这里插入图片描述
我监控控制层



package com.hwg.logger.demos.web;

import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;

@Slf4j
/**
 * @author <a href="mailto:chenxilzx1@gmail.com">theonefx</a>
 */

@RestController
public class BasicController {
    public Object lock1 = new Object();
    public Object lock2 = new Object();
    
   
    @GetMapping("/loop")
    public void  loop1(){
        log.info("loop");
        while (true){

        }
    }

    @GetMapping("/loop2")
    public void  loop2(){
        log.info("loop2");
        while (true){

        }
    }
    @GetMapping("/loop3")
    public void  loop3(){
        log.info("loop3");
        while (true){

        }
    }
    @GetMapping("/deadlock")
    public void DL() {
        new Thread(()->{
            synchronized (lock1){
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                synchronized (lock2){
                    log.info("lock1 over");
                }
            }
        }).start();
        new Thread(()->{
            synchronized (lock2){
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                synchronized (lock1){
                    log.info("lock2 over");
                }
            }
        }).start();

    }
}

Arthas定位CPU飙高

使用Postman分别发送3个请求导致CPU反复处理死循环
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

Arthas定位死锁

在这里插入图片描述
定位死锁

thread -b

在这里插入图片描述

JProfiler定位OOM

设置vm启动参数

-Xms100m -Xmx100m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=./dump.hprof

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
用破解版jprofiler打开hprof文件,发现是ArrayList发生oom
在这里插入图片描述

相关文章:

  • 支付宝小程序评论提升策略:打造高互动度的用户体验
  • TONGYI Lingma(通义灵码),GitHub Copilot和Cursor 对比
  • 树莓集团落子海南,如何重构数字产业生态体系​
  • 第27周JavaSpringboot电商进阶开发 3.常见问题解答
  • C语言实现队列数据结构:思路与代码详解
  • 谈谈List,Set,Map的区别
  • 瞭解安全防火牆術語(適合剛接觸Firepower的使用者)
  • 【蓝桥杯—单片机】第十五届省赛真题代码题解析 | 思路整理
  • vue-next-admin修改配置指南
  • WireShark自动抓包
  • 数据库第二次作业
  • 【Go语言圣经1.5】
  • ctfhub-web-SSRF通过攻略
  • 【lf中的git实战】
  • DeepSeek + Midjourney(MJ):创意设计 具体步骤
  • scrcpy pc机远程 无线 控制android app 查看调试log
  • 常见的Content-Type值
  • InternVL:论文阅读 -- 多模态大模型(视觉语言模型)
  • linux在 Ubuntu 系统中设置服务器时间
  • Linux 进程信号的捕捉信号补充内容
  • 国务院安委办、应急管理部进一步调度部署“五一”假期安全防范工作
  • 擦亮“世界美食之都”金字招牌,淮安的努力不止于餐桌
  • 为治理商家“卷款跑路”“退卡难”,预付式消费司法解释5月起实施
  • “女乘客遭顺风车深夜丢高速服务区”续:滴滴永久封禁两名涉事司机账号
  • 排除燃气爆炸、人为放火可能,辽宁辽阳火灾事故起火原因正在调查
  • 青海西宁市城西区副区长于媛媛主动投案,接受审查调查