jvm-08.jvm调优工具Arthas[通俗易懂]

jvm-08.jvm调优工具Arthas[通俗易懂]jvm调优工具Arthas阿尔萨斯官方文档https://arthas.aliyun.com/doc/下载curl-Ohttps://arthas.aliyun.com/arthas-boot.jar启动java-jararthas-boot.jarFullGC_Problem01是我们刚启动的java进程importjava.math.BigDecimal;importjava.util.ArrayList;importjava.util.Date;import

大家好,又见面了,我是你们的朋友全栈君。

jvm调优工具Arthas阿尔萨斯

官方文档
https://arthas.aliyun.com/doc/

下载

curl -O https://arthas.aliyun.com/arthas-boot.jar

在这里插入图片描述

启动

java -jar arthas-boot.jar

FullGC_Problem01是我们刚启动的java进程

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.concurrent.ScheduledThreadPoolExecutor;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
public class FullGC_Problem01 { 

private static class CardInfo { 

BigDecimal price = new BigDecimal(0.0);
String name = "张三";
int age = 5;
Date birthdate = new Date();
public void m() { 
}
}
private static ScheduledThreadPoolExecutor executor = new ScheduledThreadPoolExecutor(50,
new ThreadPoolExecutor.DiscardOldestPolicy());
public static void main(String[] args) throws Exception { 

executor.setMaximumPoolSize(50);
for (;;) { 

modelFit();
Thread.sleep(100);
}
}
private static void modelFit() { 

List<CardInfo> taskList = getAllCardInfo();
taskList.forEach(info -> { 

// do something
executor.scheduleWithFixedDelay(() -> { 

// do sth with info
info.m();
}, 2, 3, TimeUnit.SECONDS);
});
}
private static List<CardInfo> getAllCardInfo() { 

List<CardInfo> taskList = new ArrayList<>();
for (int i = 0; i < 100; i++) { 

CardInfo ci = new CardInfo();
taskList.add(ci);
}
return taskList;
}
}

在这里插入图片描述

监控

输入1回车,将arthas挂上去

开始对FullGC_Problem1进程进行监控
在这里插入图片描述

dashboard

它会不断刷新

线程信息、内存信息、运行时环境
在这里插入图片描述

查看是否有线程死锁

thread -b

在这里插入图片描述

追踪方法的执行链路

trace FullGC_Problem01 modelFit

在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/138301.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • MySQLdump备份数据库实战

    MySQLdump备份数据库实战

  • IDEA中web项目如何部署到Tomcat上[通俗易懂]

    IDEA中web项目如何部署到Tomcat上[通俗易懂]IDEA中web项目的创建与如何部署到Tomcat

    2022年10月31日
  • java深拷贝和浅拷贝_java数组copyof

    java深拷贝和浅拷贝_java数组copyof实现拷贝有几点:1)实现Cloneable接口2)重写Object类中的clone方法,并将可见性从protect改为public3)克隆需要调用super.clone(),也就是Object的实现方法浅拷贝和深拷贝的区别:浅拷贝是指拷贝对象时仅仅拷贝对象本身(包括对象中的基本变量),而不拷贝对象包含的引用指向的对象。深拷贝不仅拷贝对象本身,而且拷贝对象包含的引用指向的所有对象。以下代码说明了浅拷…

  • todoMVC_mvc框架是什么

    todoMVC_mvc框架是什么依赖cssnpmitodomvc-commontodomvc-app-cssapp.component.tsimport{Component}from’@angular/core’;consttodos=[{id:1,title:’吃饭’,done:true},{id:1,title:’工作’,done:false},{id:1,title:’运动’,

  • 安卓log日志查看工具_手机怎么查看错误日志

    安卓log日志查看工具_手机怎么查看错误日志一个完整的程序日志记录功能是必不可少的,通过日志我们可以了解程序运行详情、错误信息等,以便更好的发现及解决问题。日志可以记录到数据库、日志服务器、文件等地方,本文主要介绍文件日志。 文

  • pycharm使用gpu运行_降低python程序cpu占用高

    pycharm使用gpu运行_降低python程序cpu占用高本人频繁在pycharm下run程序,经常终止,可能其后台运行的Python程序没有关闭,所以耗尽GPU资源。现象是占用GPU的进场ID为空,即nvidia-smi后,没有进程使用GPU,但每块GPU的内存确被使用很多。。。。。fuser-v/dev/nvidia*会发现很多Python在运行,故粗暴地kill这些进程ID就可以了。。。。。。。ID乍一看很多,杀死一两个就不剩几个了。。。。本方…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号