jvisualvm工具
.首先我们在java安装目录的bin下面,找到jvisualvm.exe,双击打开。 
2.启动springboot服务,然后在jvisualvm中选择对应的服务进程,双击进入该进程,我们就可以看到该服务进程的运行情况了。 服务端接口代码:
-
@RestController
-
public class JVMTest {
-
private static volatile int count = 0;
-
@RequestMapping(value = "info", method = RequestMethod.GET)
-
public String info() {
-
count++;
-
long start = System.currentTimeMillis();
-
for (int i=0;i<100;i++){
-
JVMEntity jvmEntity =new JVMEntity();
-
jvmEntity.setName("我是内存测试");
-
System.out.println(jvmEntity.toString());
-
}
-
// objects = null;
-
long last = System.currentTimeMillis();
-
System.out.println(count+"执行时间:"+(last-start));
-
return "执行时间:"+(last-start);
-
}
-
}

3.接下来我们来进行接口并发测试,这边我用的是jmeter工具。这边我们模拟100个用户,间隔1s进行http请求。 
4.http请求完毕后,我们切换回jvisualvm的监控页面,大家可以看到不管的cpu还是内存、线程数都有了明显的上升。 
5.我们还可以查看,进程在运行过程中,类和该类创建对象的数据,对比不同时刻的对象数量,判断是否存在内存隐患。 
这边我们可以看到基本都是springboot启动本身的一些类,没有明显的异常信息。
总结
我们期望我们的程序都可以好好运行,但是有时候往往事与愿违,这个时候我们就必须分析故障发生的原因在哪里。而JVM分析又是其中重中之重,所以掌握JVM排查方法是非常有必要的。

浙公网安备 33010602011771号