下载地址:https://arthas.gitee.io/download.html
你可以下载zip的包我下载的是arthas-packaging-3.5.0-bin.zip
或者通过命令去下载
wget https://alibaba.github.io/arthas/arthas-boot.jar
使用手册
当我们下载好之后,我们直接通过命令启动就可以java -jar arthas-boot.jar
,但是在此之前我们需要通过检测的代码来挂靠到Arthas上面
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 FullGCTest {
//模拟银行卡的类
private static class CardInfo {
//小农的银行卡信息记录
BigDecimal price = new BigDecimal(10000000.0);
String name = “牧小农”;
int age = 18;
Date birthdate = new Date();
public void m() {}
}
//线程池 定时线程池
//50个,然后设置 拒绝策略
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 taskList = getAllCardInfo();
//拿出每一个信息出来
taskList.forEach(info -> {
// do something
executor.scheduleWithFixedDelay(() -> {
//调用M方法
info.m();
}, 2, 3, TimeUnit.SECONDS);
});
}
private static List getAllCardInfo(){
List taskList = new ArrayList<>();
//每次查询100张卡出来
for (int i = 0; i < 100; i++) {
CardInfo ci = new CardInfo();
taskList.add(ci);
}
return taskList;
}
}
这个是上篇文章讲述的案例,感兴趣的可以了解一下。
首先我们需要使用javac 命令将Java文件进行编译javac FullGCTest.java进行编译,然后打印GC日志,进行风险监控打印GC日志:
java -Xms200M -Xmx200M -XX:+PrintGC FullGCTest