【Java面试】服务器CPU使用率飙升,如何排查?

简介

如果碰到服务器CPU使用率飙升,居高不下,该如何定位排查问题呢?

本文带大家实践一下,在使用Java时,碰到服务器CPU飙升该如何定位到具体的问题代码!

准备工作

1、代码准备

Main.java

java 复制代码
public class Main {
    public static void main(String[] args) {
        System.out.println("Hello world!");
        circle();
    }

    public static void circle() {
        while (true) {

        }
    }
}

这里写一个circle方法,方法里面是一个while死循环。

2、在服务器上编译运行代码

java 复制代码
javac Main.java
java Main

查看CPU占用进程

bash 复制代码
top

找到异常的进程号

定位异常线程

通过命令

bash 复制代码
top -Hp <pid>

定位异常线程

线程号转为16进制

bash 复制代码
printf %x <tid>

jstack定位异常代码

bash 复制代码
jstack <pid> |grep -A 200 <16进制tid>

根据类名和行号,即可定位到问题代码

相关推荐
東雪木15 分钟前
Java学习——一访问修饰符(public/protected/default/private)的权限控制本质
java·开发语言·学习·java面试
helx8221 分钟前
SpringBoot实战(三十二)集成 ofdrw,实现 PDF 和 OFD 的转换、SM2 签署OFD
spring boot·后端·pdf
两点王爷36 分钟前
docker 创建和使用存储卷相关内容
java·docker·容器
boonya39 分钟前
Embedding模型与向量维度动态切换完整方案
java·数据库·embedding·动态切换大模型
宁波阿成1 小时前
族谱管理系统架构分析与亮点总结
java·系统架构·vue·ruoyi-vue·族谱
姬成韶1 小时前
BUUCTF--[RoarCTF 2019]Easy Java
java·网络安全
组合缺一1 小时前
Solon AI Harness 首次发版
java·人工智能·ai·llm·agent·solon
rOuN STAT1 小时前
Skywalking介绍,Skywalking 9.4 安装,SpringBoot集成Skywalking
spring boot·后端·skywalking
AlunYegeer1 小时前
MyBatis 传参核心:#{ } 与 ${ } 区别详解(避坑+面试重点)
java·mybatis
少许极端2 小时前
算法奇妙屋(四十)-贪心算法学习之路7
java·学习·算法·贪心算法