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

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

相关推荐
莫得感情 o15 分钟前
并发 11 · 同步工具类
java·并发
AINative软件工程17 分钟前
LLM Token Budget 工程实践:给每个请求设上限,让成本和质量都在掌控中
后端·llm·ai编程
卷无止境26 分钟前
终端里的AI辅助,一场正在发生的编程效率变革
后端·python
程序员爱钓鱼30 分钟前
Go 编程实战:Map——使用 Key-Value 管理键值数据
后端·rust·go
程序员爱钓鱼1 小时前
Rust Trait Object详解:dyn Trait与动态分发
后端·面试·rust
chuan.bai6 小时前
Java RAG 实战(第 11 篇):RAG 知识工作台网页
java·开发语言·人工智能
0x539 小时前
网站通信(一)
java
To_OC9 小时前
Next.js + Redis 构建笔记系统:Redis Hash 实战与性能优化
redis·后端·next.js
Terra.K9 小时前
Java异常学习[特殊字符]
java·开发语言·学习
葡萄城技术团队10 小时前
InfluxDB 2\.x 深度解析:核心架构、Flux 函数与制造业落地指南(三)
java·开发语言·架构