【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>

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

相关推荐
a努力。2 分钟前
中国电网Java面试被问:Dubbo的服务目录和路由链实现
java·开发语言·jvm·后端·面试·职场和发展·dubbo
爬山算法3 分钟前
Hibernate(42)在Hibernate中如何实现分页?
java·后端·hibernate
不平衡的叉叉树6 分钟前
我们遇到了正则表达式的灾难性回溯问题
java·正则表达式
wangkay8818 分钟前
【Java 转运营】Day05:抖音新号起号:对标账号运营全指南
java·新媒体运营
爱码猿28 分钟前
Springboot结合thymeleaf模板生成pdf文件
spring boot·后端·pdf
大飞哥~BigFei32 分钟前
新版chrome浏览器安全限制及解决办法
java·前端·chrome·安全·跨域
IT_陈寒36 分钟前
SpringBoot 3.2实战:5个性能优化技巧让你的应用提速50%
前端·人工智能·后端
{Hello World}39 分钟前
Java多态:三大条件与实现详解
java·开发语言
老蒋每日coding40 分钟前
Java解析Excel并对特定内容做解析成功与否的颜色标记
java·开发语言·excel