龙空技术网

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

程序员哈皮 279

前言:

眼前朋友们对“服务器cpu高怎么办”大概比较着重,兄弟们都想要了解一些“服务器cpu高怎么办”的相关内容。那么小编同时在网上汇集了一些有关“服务器cpu高怎么办””的相关内容,希望朋友们能喜欢,姐妹们快快来学习一下吧!

简介

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

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

准备工作

1、代码准备

Main.java

public class Main {    public static void main(String[] args) {        System.out.println("Hello world!");        circle();    }    public static void circle() {        while (true) {        }    }}

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

<!-- more -->

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

javac Main.javajava Main
查看CPU占用进程
top

找到异常的进程号

定位异常线程

通过命令

top -Hp <pid>

定位异常线程

线程号转为16进制

printf %x <tid>
jstack定位异常代码
jstack <pid> |grep -A 200 <16进制tid>

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

标签: #服务器cpu高怎么办 #javacpu占用过高排查工具