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

在这里插入图片描述

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

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

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • oracle事务隔离级别查看_oracle数据库隔离级别

    oracle事务隔离级别查看_oracle数据库隔离级别脏读(dirtyread):当一个事务读取另一个事务尚未提交的修改时,产生脏读。不可重复读(nonrepeatableread):同一查询在同一事务中多次进行,在此期间,由于其他事务提交了对数据的修改或删除,每次返回不同的结果。幻读(phantomread):同一查询在同一事务中多次进行,由于其他提交事务所做的插入操作,虽然查询条件相同,每次返回的结果

    2022年8月31日
  • pycharm多行代码同时注释、去除注释_python求幂运算符

    pycharm多行代码同时注释、去除注释_python求幂运算符单多行注释就一个组合键:选中+Ctrl+/

    2022年8月15日
  • Java集合篇:HashMap原理详解(JDK1.7及之前的版本)

    Java集合篇:HashMap原理详解(JDK1.7及之前的版本)

    2021年10月4日
  • MATLAB矩阵合并「建议收藏」

    MATLAB矩阵合并「建议收藏」两个或多个矩阵的拼接(合并)操作:学习链接用[]做拼接时,有三种连接符:逗号(,),空格,分号(;)。逗号(,)和空格等价,表示不换行,直接横向拼接,横向拼接要求两个矩阵行数相同;分号(;)表示换行后纵向拼接,纵向拼接要求两个拼接的矩阵的列数相同。代码展示:1.横向拼接:1%逗号和空格表示横向拼接2A=zeros(4,2)3B=ones(4,1)4C=[AB]A=00000000B=11

    2022年6月25日
  • supergo任我行纵行指南针TT硕点YY考勤打卡定位下载及安装教程

    supergo任我行纵行指南针TT硕点YY考勤打卡定位下载及安装教程**supergo指南针TT硕点YY定位下载及安装教程**supergo指南针TT硕点YY定位下载及安装教程(2021最新版更新)本文以supergo为例,演示说明下载过程1、首先登录supergo下载官网2、2.找到supergo下载的按钮。并点击下载,输入提示密码3.然后选择右上角三个点,选择在safari浏览器中打开。点击下载,安装。弹框请选择安装按钮4.点击设置-通用,描述文件和设备管理,找到证书名称,然后点击信任,即可…

    2022年6月25日
  • eureka集群配置_hadoop高可用集群搭建

    eureka集群配置_hadoop高可用集群搭建Eruka高可用(集群)EurekaServer高可用配置(1)高可用是什么?“高可用性”(HighAvailability)通常来描述一个系统经过专门的设计,从而减少停工时间,而保持其服务的高度可用性如:给EurekaServer搞一个备份(2)服务同步原理多个EurekaServer之间也会互相注册为服务,当服务提供者注册到EurekaServer集群中的某个节点时,该节点会把服务的信息同步给集群中的每个节点,从而实现数据同步。因此,无论客户端访问到EurekaServer集

    2022年8月21日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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