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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 学生个人网页设计作品_简单的静态网页代码

    学生个人网页设计作品_简单的静态网页代码学生个人静态网页设计作品之我的家乡设计思路知识运用内容介绍页面代码展示作品展示设计思路页面使用居中效果,留下留白简洁简便,使浏览者在浏览的过程中有一种舒适感,在视觉方面有着清晰安静的画面,吸引浏览者对下面内容的浏览。作品采用的背景是白色,在视觉方面上有着明亮的空间,主体内容宽度为1080px,较大的宽度让浏览者能够清晰的浏览。知识运用在操作方面上运用了html5和css3,采用了div+css结构、表单、超链接、浮动、绝对定位、相对定位、字体样式、引用视频等基础知识内容介绍《我的家

    2025年9月14日
    7
  • redis数据库端口号_redis对接mysql

    redis数据库端口号_redis对接mysql关系型数据库一:Oracle驱动:oracle.jdbc.driver.OracleDriverURL:jdbc:oracle:thin:@:dbname注:machine_name:数据库所在的机器的名称,如果是本机则是127.0.0.1或者是localhost,如果是远程连接,则是远程的IP地址;port:端口号,默认是1521二:SQLServer驱动:com.microsoft.jdb…

    2022年9月18日
    5
  • Mybatis 一对多关联查询collection用法[通俗易懂]

    Mybatis 一对多关联查询collection用法[通俗易懂]使用resultMap,select标签,resultMap的中的collection表示一对多,column对应select标签中的sql里的字段或者别名,当两个表字段名称有相同的情况下,可以定义别名。<resultMapid=”authorWorksInfo”type=”package.vo.AuthorWorksInfo”><idcolumn=”id”property=”id”/><resultcolumn=”name”pro…

    2025年6月21日
    2
  • 在目录下打开命令行_如何用命令行打开文件夹

    在目录下打开命令行_如何用命令行打开文件夹用命令行打开指定目录。基本指令nautilus+路径命令可以在ubuntu上直接打开此路径的目录。如nautilus~/workspace/。打开win格式的路径在Windows上的路径为反斜线\,在ubuntu命令行是无法识别的,此时需要将\转换为/。使用sed命令可以自动转换。以下命令可以打开/home/eric.cai/Workspace/目录:nautilus$(echo’\home\eric.cai\Workspace’|sed‘s+\\+/+g’)写成

    2022年10月15日
    2
  • SVN:符号

    SVN:符号

    2021年10月19日
    42
  • mysql 导入 csv 大文件怎么打开_mysql导入超大内存的csv文件

    mysql 导入 csv 大文件怎么打开_mysql导入超大内存的csv文件1.直接用命令2.用分割器分割,再用导入最后要commit,不然没有真的导入数据库中。其中出现的问题:TheMySQLserverisrunningwiththe–secure-file-privoptionsoitcannotexecutethisstatement解决方法:【我的做法】【必须SQL文件和数据表都要在指定目录中】指定路径查询:showvariabl…

    2022年7月21日
    12

发表回复

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

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