手把手教你java CPU飙升300%如何优化

本文涉及的产品
NLP自然语言处理_高级版,每接口累计50万次
视觉智能开放平台,视频资源包5000点
NLP 自学习平台,3个模型定制额度 1个月
简介: 手把手教你java CPU飙升300%如何优化

背景

今天有个项目运行一段时间后,cpu老是不堪负载。

排查

image.png

TOP 命令
top t 按cpu 排序
top m 按内存使用率排序

image.png

从上面看很快看出是 pid 4338 这个进程资源消耗很高。

top -Hp pid

  • top -Hp 4338 找到对应线程消耗的资源
  • shft+p cpu占用进行排序,
  • shift+m 按照内存排序

这里拿4353 举例线程资源占用最多,这里先记下来。然后获取4353的16进制值

 printf "%x\n" 4353

image.png

得到 4353 对应16进制 是1101

接下来导出该pid 进程快照结果,从而去找线程

jstack命令

jstack -l 4338 >  js.txt

打开 js.txt 搜索4353 对应16进制 是1101
image.png

从图可知是gc 导致。

相关文章
|
16天前
|
Kubernetes Java Android开发
用 Quarkus 框架优化 Java 微服务架构的设计与实现
Quarkus 是专为 GraalVM 和 OpenJDK HotSpot 设计的 Kubernetes Native Java 框架,提供快速启动、低内存占用及高效开发体验,显著优化了 Java 在微服务架构中的表现。它采用提前编译和懒加载技术实现毫秒级启动,通过优化类加载机制降低内存消耗,并支持多种技术和框架集成,如 Kubernetes、Docker 及 Eclipse MicroProfile,助力开发者轻松构建强大微服务应用。例如,在电商场景中,可利用 Quarkus 快速搭建商品管理和订单管理等微服务,提升系统响应速度与稳定性。
31 5
|
2月前
|
小程序 JavaScript Java
【Java】服务CPU占用率100%,教你用jstack排查定位
本文详细讲解如何使用jstack排查定位CPU高占用问题。首先介绍jstack的基本概念:它是诊断Java应用程序线程问题的工具,能生成线程堆栈快照,帮助找出程序中的瓶颈。接着,文章通过具体步骤演示如何使用`top`命令找到高CPU占用的Java进程及线程,再结合`jstack`命令获取堆栈信息并进行分析,最终定位问题代码。
129 1
【Java】服务CPU占用率100%,教你用jstack排查定位
|
27天前
|
监控 IDE Java
【Java性能调优新工具】JDK 22性能分析器:深度剖析,优化无死角!
【9月更文挑战第9天】JDK 22中的性能分析器为Java应用的性能调优提供了强大的支持。通过深度集成、全面监控、精细化分析和灵活报告生成等核心优势,性能分析器帮助开发者实现了对应用性能的全面掌控和深度优化。在未来的Java开发过程中,我们期待性能分析器能够继续发挥重要作用,为Java应用的性能提升贡献更多力量。
|
29天前
|
Java API 数据处理
【Java的SIMD革命】JDK 22向量API:释放硬件潜能,让Java应用性能飙升!
【9月更文挑战第7天】 JDK 22向量API的发布标志着Java编程语言在SIMD技术领域的重大突破。这一新特性不仅释放了现代硬件的潜能,更让Java应用性能实现了飙升。我们有理由相信,在未来的发展中,Java将继续引领编程语言的潮流,为开发者们带来更加高效、更加强大的编程体验。让我们共同期待Java在SIMD技术的推动下开启一个全新的性能提升时代!
|
1月前
|
存储 Java 程序员
优化Java多线程应用:是创建Thread对象直接调用start()方法?还是用个变量调用?
这篇文章探讨了Java中两种创建和启动线程的方法,并分析了它们的区别。作者建议直接调用 `Thread` 对象的 `start()` 方法,而非保持强引用,以避免内存泄漏、简化线程生命周期管理,并减少不必要的线程控制。文章详细解释了这种方法在使用 `ThreadLocal` 时的优势,并提供了代码示例。作者洛小豆,文章来源于稀土掘金。
|
10天前
|
设计模式 监控 Java
重构与优化-前言(java)
重构与优化-前言(java)
|
2月前
|
算法 Java 数据库
Java 性能优化秘籍:在数字化浪潮中,让你的应用如火箭般飞驰!
【8月更文挑战第30天】Java 作为一种广泛使用的编程语言,其性能优化是开发者关注的重点。优化需基于对 Java 内存模型、垃圾回收及线程并发模型的理解。合理的垃圾回收算法与线程安全措施、锁机制的应用至关重要。实践中,避免不必要的对象创建可减轻内存压力;优化数据库操作,如合理使用索引和查询语句,同样重要。JVM 参数调优,如调整堆大小和垃圾回收器选择,也能显著提升性能。综合运用这些策略并通过持续测试与调整,可以使 Java 应用在高并发和大数据量场景下保持高效运行,提供流畅的用户体验。
44 3
|
2月前
|
IDE Java 测试技术
揭秘Java高效编程:测试与调试实战策略,让你代码质量飞跃,职场竞争力飙升!
【8月更文挑战第30天】在软件开发中,测试与调试对确保代码质量至关重要。本文通过对比单元测试、集成测试、调试技巧及静态代码分析,探讨了多种实用的Java测试与调试策略。JUnit和Mockito分别用于单元测试与集成测试,有助于提前发现错误并提高代码可维护性;Eclipse和IntelliJ IDEA内置调试器则能快速定位问题;Checkstyle和PMD等工具则通过静态代码分析发现潜在问题。综合运用这些策略,可显著提升代码质量,为项目成功打下坚实基础。
48 2
|
2月前
|
缓存 负载均衡 算法
Java性能优化实战:从代码到部署的全方位攻略
在软件开发的世界里,性能是金。本文将通过浅显易懂的语言和具体案例,带你了解如何从编写更高效的Java代码开始,到利用JVM调优工具,再到部署环境的精细调整,全面提升你的Java应用性能。你将学会如何识别瓶颈、选择正确的数据结构和算法、进行垃圾回收调优,以及使用现代硬件优势来加速你的应用。无论你是新手还是资深开发者,这篇文章都将为你的Java性能优化之旅提供宝贵的指导。
|
2月前
|
监控 Java Linux
CPU被打满/CPU 100%:高效诊断与优化策略
【8月更文挑战第28天】在日常的工作与学习中,遇到CPU使用率飙升至100%的情况时,往往意味着系统性能受到严重影响,甚至可能导致程序响应缓慢或系统崩溃。本文将围绕这一主题,分享一系列高效诊断与优化CPU使用的技术干货,帮助大家快速定位问题并恢复系统性能。
57 1
下一篇
无影云桌面