模拟CPU 40%左右

import java.util.concurrent.CountDownLatch;

public class Main extends Thread {
private CountDownLatch c; public Main(String name, CountDownLatch c) {
super(name);
this.c = c;
} @Override
public void run() {
for (int i = 0; i < 500000000; i++) {
System.out.print(i);
}
c.countDown();
} public static void main(String[] args) throws InterruptedException {
CountDownLatch c = new CountDownLatch(1);
Main thread1 = new Main("thread1", c);
thread1.start(); c.await();
}
}

后台运行jar包

java -jar maven_test.jar &

安装jstack

yum install java-1.8.0-openjdk-devel.x86_64 -y

找到占用CPU最高的进程是Java进程59635

top

找到占用CPU最高的线程59647

top -H -p 59635

输出线程PID 59647对应的16进制数是e8ff

printf "%x\n" 59647

jstack查看Java进程中线程信息,过滤e8ff相关的线程信息

jstack 59635 | grep e8ff -A 20

根据jstack的输出,主流程也是一个线程

参考资料
java 线上应用排查CPU过高(模拟场景)

高CPU Java应用分析的更多相关文章

  1. 通过 thread dump 分析找到高CPU耗用与内存溢出的Java代码

    http://heylinux.com/archives/1085.html通过 thread dump 分析找到高CPU耗用与内存溢出的Java代码 首先,要感谢我的好朋友 钊花 的经验分享. 相信 ...

  2. Java服务器内存过高&CPU过高问题排查

    一.内存过高 1.内存过高一般有两种情况:内存溢出和内存泄漏 (1)内存溢出:程序分配的内存超出物理机的内存大小,导致无法继续分配内存,出现OOM报错 (2)内存泄漏:不再使用的对象一直占据着内存不释 ...

  3. java高cpu占用和高内存占用问题排查 (转)

    高cpu占用 1.top命令:Linux命令.可以查看实时的CPU使用情况.也可以查看最近一段时间的CPU使用情况. 2.PS命令:Linux命令.强大的进程状态监控命令.可以查看进程以及进程中线程的 ...

  4. 由Java正则表达式的灾难性回溯引发的高CPU异常:java.util.regex.Pattern$Loop.match

    问题与分析 某天领导report了一个问题:线上的CPU自从上一个版本迭代后就一直处于居高不下的状况,领导看着这段时间的曲线图判断是有两条线程在不停的死循环. 接到任务后去查看了AWS的CloudWa ...

  5. [项目机会]citrix 虚拟桌面对于java等高CPU占用率如何解决

    citrix 虚拟桌面对于java等高CPU占用率如何解决 问题1:java等客户端对于虚拟桌面cpu影响较大,但是有些用户的确需要使用java支持的程序,是否可以通过其他途径来解决? 问题2:对于其 ...

  6. windebug分析高cpu问题

    分析高CPU的关键是找到哪个线程是持续运行,占用CPU时间. 可以隔上两分钟连续抓两个dump文件,使用 !runaway 查看线程运行的时间 通过对比两个dump文件的线程时间,看看哪个线程运行的时 ...

  7. .netcore利用perf分析高cpu使用率

    目录 一 在宿主机运行perf 二 容器内安装perf 1,重新构建镜像 2,下载火焰图生成脚本 3,安装linux-perf 三 CPU占用分析 1,perf record捕获进程 2,生成火焰图 ...

  8. java应用定位高cpu占用几步操作

    1.top获取高cpu占用的pid,如266202.查看pid的线程情况, top -H -p 266203.把cpu高占用的线程号转为16进制,printf "%x" 26652 ...

  9. Java 性能分析工具 , 第 3 部分: Java Mission Control

    引言 本文为 Java 性能分析工具系列文章第三篇,这里将介绍如何使用 Java 任务控制器 Java Mission Control 深入分析 Java 应用程序的性能,为程序开发人员在使用 Jav ...

  10. Java 性能分析工具 , 第 2 部分:Java 内置监控工具

    引言 本文为 Java 性能分析工具系列文章第二篇,第一篇:操作系统工具.在本文中将介绍如何使用 Java 内置监控工具更加深入的了解 Java 应用程序和 JVM 本身.在 JDK 中有许多内置的工 ...

随机推荐

  1. 一次线上OOM问题分析

    现象 线上某个服务有接口非常慢,通过监控链路查看发现,中间的 GAP 时间非常大,实际接口并没有消耗很多时间,并且在那段时间里有很多这样的请求. 原因分析 先从监控链路分析了一波,发现请求是已经打到服 ...

  2. Java第三讲动手动脑

    1 以上代码无法通过编译主要是由于在Foo类中自定义了有参的构造函数,系统不在提供默认的构造函数(无参),而在上述的引用中并没有提供参数导致无法通过编译. 2. 运行结果 由运行结果分析可知,在运行时 ...

  3. K8S 1.20 弃用 Docker 评估之 Docker 和 OCI 镜像格式的差别

    背景 2020 年 12 月初,Kubernetes 在其最新的 Changelog 中宣布,自 Kubernetes 1.20 之后将弃用 Docker 作为容器运行时. 弃用 Docker 带来的 ...

  4. vulnhub靶场之MATRIX-BREAKOUT: 2 MORPHEUS

    准备: 攻击机:虚拟机kali.本机win10. 靶机:Matrix-Breakout: 2 Morpheus,下载地址:https://download.vulnhub.com/matrix-bre ...

  5. 常用的基本Dos命令

    Windows+R: 输入cmd,运行控制台 #盘符切换: 盘名+: #查看当前目录下的所有文件: dir #切换目录: cd+文件名 #返回上一级: cd.. #清理屏幕: cls #退出终端: e ...

  6. 好用的后台管理模板Bootstrap3

    推荐 好用的后台管理模板 参考链接:https://www.sucaiq.com/moban/1250.html 预览图

  7. Mysql数据库基础第五章:(一)事务

    Mysql数据库基础系列 软件下载地址 提取码:7v7u 数据下载地址 提取码:e6p9 mysql数据库基础第一章:(一)数据库基本概念 mysql数据库基础第一章:(二)mysql环境搭建 mys ...

  8. C++语言程序设计实验一 类与对象

    Complex.hpp文件源码: #include <iostream> using namespace std; class Complex { public: Complex(floa ...

  9. 安装完IDEA后无法打开

    安装完IDEA后无法打开 一.现象 安装完IDEA2021.3版本后,无论用什么办法都无法打开 二.原因 原先有安装过idea,里面有加载过一些插件,或者是破解过,会生成一些文件,导致IDEA无法运行 ...

  10. 2021年爆出log4j漏洞修复

    (1)用户可自查系统是否引用 Apache log4j-core 依赖,没有引用则不受漏洞影响. (2)排查系统中日志配置是否采用远程动态加载模式.(3)排查系统中是否正在使用JDBCAppender ...