如何解决java程序CPU负载过高问题

1、介绍

在生产环境中,有时会遇到cpu占用过高且一直下不去的场景。这种情况可能会导致服务器宕机,进而中断对外服务,也会影响硬件寿命。

2、原因

1、Java代码存在因递归不当等原因导致的死循环的问题,推荐有条件的循环;
2、Jav代码存在因创建线程过多而造成频繁的上下文切换,进而消耗CPU资源问题,推荐根据业务合理建立线程池;
3、Java虚拟机线程(如GC线程、编译线程)频繁执行,查找原因减低GC频率;

3、定位

定位问题步骤:
1)定位进程:通过“top”命令找到系统中CPU占用率比较高的进程ID;
2)定位线程:通过“top -Hp 线程ID”命令在指定的进程中寻找进程CPU占用率比较高的线程ID;
3)定位代码:通过“jstack 线程ID”搜索打印出的进程堆栈日志,进而定位到具体的问题;

3.1 定位进程

通过“top”命令找到系统重cpu占用率比较高的进程ID.

[root@localhost ~]# top

说明:top是一个Linux系统中常用的性能分析工具,能够近试试(默认每隔3秒刷新)地显示系统内各进程的资源(如CPU、内存等)占用状况,类似于windows的任务管理器。
该命令可以按CPU使用、内存使用和执行时间对任务进行排序。
shift+P:根据CPU消耗排序,
shift+M:根据内存消耗排序。
以下是执行top命令后显示的信息:
image.png

3.2 定位线程

发现60388这个进程占用CPU比较高,执行以下命令来定位是哪个线程占用较高

[root@localhost ~]# top -Hp 60388

image.png
发现61200这个线程占用CPU比较高

3.3 定位代码

1、获取某个进程堆栈快照信息

# 注意是进程ID
[root@localhost ~]# jstack 60388 > /opt/cpu.info

说明:
jstack用于获取某个Java进程内各个Java线程的堆栈跟踪快照信息。
image.png
这个命令执行完后,就会在指定的位置生成cpu.info文件,这个文件里面就收集到当前进程所有线程的信息。

2、获取61200这个线程对应的16进制表示

[root@localhost ~]# printf "%x\n" 61200
ef10

image.png

3、在文件中搜索过滤并打印含ef10的日志数据

[root@localhost ~]# cat /opt/cpu.info | grep -A 30 ef10

image.png
定位到具体哪一行
image.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/37608.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Linux】性能分析器 perf 详解(一):简介、安装、stat命令演示

1、简介 perf 是由 Linux 官方提供的系统性能分析工具 。它包含两部分: perf_events ,Linux 内核中的一个子系统perf 命令,用户空间的应用程序内核子系统 perf_events 提供了性能计数器(hardware performance counters)和性能事件的支持,它以事件驱动型的方式工作,通过…

一分钟解决读者和写者问题

长话短说,就是:读、读共享;写、写互斥;写、读互斥。 直接从代码角度分析: 互斥信号量wmutex: 实现Reader与Writer进程间在读和写、写和写时的互斥整型变量readcount: 表示正在读的进程数目互斥信号量rmutex在下文揭秘…

C#编程技术指南:从入门到精通的全面教程

无论你是编程新手,还是想要深化.NET技能的开发者,本文都将为你提供一条清晰的学习路径,从C#基础到高级特性,每一站都配有详尽解析和实用示例,旨在帮助你建立坚实的知识体系,并激发你对C#及.NET生态的热情。…

(笔记)Error: qemu-virgl: Failed to download resource “qemu-virgl--test-image“解决方法

错误: > Downloading https://www.ibiblio.org/pub/micro/pc-stuff/freedos/files/distributions/1.2/FD12FLOPPY.zip curl: (22) The requested URL returned error: 404Error: qemu-virgl: Failed to download resource "qemu-virgl--test-image" D…

基于自组织长短期记忆神经网络的时间序列预测(MATLAB)

LSTM是为了解决RNN 的梯度消失问题而诞生的特殊循环神经网络。该网络开发了一种异于普通神经元的节点结构,引入了3 个控制门的概念。该节点称为LSTM 单元。LSTM 神经网络避免了梯度消失的情况,能够记忆更长久的历史信息,更能有效地拟合长期时…

SpringBoot: Eureka入门

1. IP列表 公司发展到一定的规模之后,应用拆分是无可避免的。假设我们有2个服务(服务A、服务B),如果服务A要调用服务B,我们能怎么做呢?最简单的方法是让服务A配置服务B的所有节点的IP,在服务A内部做负载均衡调用服务B…

Unity3D游戏开发中常用的工具类函数详解

在Unity3D游戏开发中,工具类函数扮演着至关重要的角色,它们为开发者提供了各种便捷的功能,从而简化了游戏开发过程。本文将详细介绍Unity3D中一些常用的工具类函数,并提供相应的技术详解和代码实现。 对惹,这里有一个…

【漏洞复现】科立讯通信有限公司指挥调度管理平台uploadgps.php存在SQL注入

0x01 产品简介 科立讯通信指挥调度管理平台是一个专门针对通信行业的管理平台。该产品旨在提供高效的指挥调度和管理解决方案,以帮助通信运营商或相关机构实现更好的运营效率和服务质量。该平台提供强大的指挥调度功能,可以实时监控和管理通信网络设备、…

web前端大作业-乡村扶贫、乡村振兴

文章目录 代码分析页面截图代码连接 代码分析 代码结构 主页index.html <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta…

计算机视觉 图像融合技术概览

在许多计算机视觉应用中(例如机器人运动和医学成像),需要将来自多幅图像的相关信息集成到一幅图像中。这种图像融合将提供更高的可靠性、准确性和数据质量。 多视图融合可以提高图像的分辨率,同时恢复场景的 3D 表示。多模态融合结合了来自不同传感器的图像,称为多传感器融…

【数组】- 螺旋矩阵 II

1. 对应力扣题目连接 螺旋矩阵 II 题目简述&#xff1a; 给你一个正整数 n &#xff0c;生成一个包含 1 到 n2 所有元素&#xff0c;且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。如图&#xff1a; 2. 实现案例代码 public class SpiralMatrix {public static…

学习gateway网关路由时遇到的问题

遇到这个问题先别慌&#xff0c;我们首先要检查是哪里出问题了&#xff0c;从报错信息中我们可以看到&#xff0c;他说 Unable to find GatewayFilterFactory with name -AddRequestHeader 找不到这个路由过滤器&#xff0c;所以导致网关设置失败&#xff0c;从这条信息上我…

Java面试题:讨论你如何保持对Java生态系统中新技术的了解

保持对Java生态系统中新技术的了解可以通过以下几种方法&#xff1a; 官方资源&#xff1a; Oracle的官方博客和新闻&#xff1a;Oracle是Java的主要维护者&#xff0c;其官方网站和博客会定期发布Java的新版本、功能更新和最佳实践。Java SE Documentation&#xff1a;Java官方…

JS(JavaScript)二级菜单级联案例演示

天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物。 每个人都有惰性&#xff0c;但不断学习是好好生活的根本&#xff0c;共勉&#xff01; 文章均为学习整理笔记&#xff0c;分享记录为主&#xff0c;如有错误请指正&#xff0c;共同学习进步。…

数据分析框架维度的关键词简单整理

数据分析的100个关键词 背景&#xff1a;此处属于个人查询简单整理&#xff0c;如有不适请谅解~ 分析维度 业务拆解 一个复杂的业务进行拆分&#xff0c;将其分解成更小、更易于管理和实施的组成部分&#xff0c;将业务拆解成公式&#xff0c;业务就是Y&#xff0c;X就是其他小…

华为手机改变休眠时间 不让手机动不动黑屏

在手机中找到设置 并打开 在里面找到显示与亮度 并点开 找到并点击休眠操作项 然后就会弹出 多久进入休眠 可以调久一点

程序员学长 | 快速学会一个算法模型,LSTM

本文来源公众号“程序员学长”&#xff0c;仅用于学术分享&#xff0c;侵权删&#xff0c;干货满满。 原文链接&#xff1a;快速学会一个算法模型&#xff0c;LSTM 今天&#xff0c;给大家分享一个超强的算法模型&#xff0c;LSTM。 LSTM&#xff08;Long Short-Term Memory…

2024级可入学的中国社科院美国杜兰大学双证金融硕士

2024级可入学的中国社科院美国杜兰大学双证金融硕士 作为中国社会科学院大学第一个中外合作办学项目&#xff0c;金融管理硕士项目发至今已有13年&#xff0c;成功举办12期&#xff0c;累计培养毕业生500多人&#xff0c;为国家金融行业培养了一批优秀的专业人才。学生在职学习…

落石滑坡监测报警系统:创新保障高速公路安全

​ ​​在现代交通建设中&#xff0c;高速公路的安全性和稳定性至关重要。特别是易发生落石区域&#xff0c;如何有效预防和应对落石滑坡带来的事故成为了一项关键性挑战。为此&#xff0c;落石滑坡监测报警系统应运而生&#xff0c;它通过先进的技术手段&#xff0c;为高速…