Java程序导致CPU打满排查方法
目录:
- 1、环境准备
- 2、排查方法
- 方式一:top + jstack
- 方式二:Arthas
1、环境准备
为了模拟CPU打满的情况,写了一段简单代码,如下:
2、排查方法
方式一:top + jstack
方式二:Arthas
Arthas 是一款阿里开源的线上监控诊断产品,通过全局视角实时查看应用 load、内存、gc、线程的状态信息,并能在不修改应用代码的情况下,对业务问题进行诊断,包括查看方法调用的出入参、异常,监测方法执行耗时,类加载信息等,大大提升线上问题排查效率。
下载:
curl -O https://arthas.aliyun.com/math-game.jar
我们能看到前两个线程的CPU占用率以及定位到错误代码,是不是使用起来感觉比第一种方式更简单。
项目中经常遇到某个服务将cpu打满的情况导致服务不可用,可以借鉴此两种方法来排查问题的原因,非常有效!!!