首页 > 编程语言 >java应用CPU占用率过高排查

java应用CPU占用率过高排查

时间:2024-05-20 17:30:17浏览次数:36  
标签:采样 java GC jstat 占用率 CPU

1.背景

服务器CPU使用率告警,紧急排查。

2.排查思路

2.1 top查看各进程的CPU占用率

top 

查到进程的pid

2.2 查看该进程的所有线程

top -Hp <pid>

发现大量的GC task thread# 的cpu使用超过90%,定位到时频繁GC导致,可能是内存不足引起

# jstat监控GC情况,其中:<vmid> 是Java虚拟机的ID,通常是进程ID。 [interval]是可选的,表示采样间隔时间,单位为毫秒。[count]是可选的,表示采样次数。例如,要监控进程ID为1234的Java应用程序的GC情况,每隔1秒钟输出一次采样信息,总共采样5次
jstat -gc 1234 1000 5
# 查看垃圾回收的空间占比
jstat -gcutil  21430 1000
# gc原因
jstat -gccause 21430 1000

2.3 调整java进程的jvm内存设置

# 查看默认值:最大堆分配内存 -Xmx 相当于MaxHeapSize
jinfo -flag MaxHeapSize 21430 

# 调整默认设置
java -jar -Xms30g -Xmx30g 

3.引用

[JVM:利用jstat查看GC信息及堆内存设置(二)(https://blog.csdn.net/qq_24950043/article/details/129777267)
Java应用生产Full GC或者OOM问题如何定位
jstack问题定位分析
[垃圾回收GC (Allocation Failure) Full GC (Ergonomics)](https://blog.csdn.net/weixin_43821874/article/details/90675264
Full GC (Ergonomics) 产生的原因
JVM-JVM调优

标签:采样,java,GC,jstat,占用率,CPU
From: https://www.cnblogs.com/route/p/18202471

相关文章

  • what's the advantages of using Map over Object in JavaScript?
    what'stheadvantagesofusingMapoverObjectinJavaScript?在JavaScript中使用Map相对于Object有什么优势?prosconsdemoshttps://leetcode.com/studyplan/30-days-of-javascript/(......
  • 解决yarn打包时出现“FATAL ERROR: Reached heap limit Allocation failed - JavaScri
    1、......
  • CentOS7安装Java
    1.查看是否有安装Javarpm-qa|grepjavarpm-qa|grepjdkrpm-qa|grepgcj如果之前有安装就卸载安装rpm-qa|grepjava|xargsrpm-e--nodeps2.下载安装包https://www.oracle.com/java/technologies/downloads/#java83.上传CentOS7服务器这里我们使用的......
  • Java常用的JSON序列化与反序列化工具实践
    JSON简介:JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式,通常用于在不同系统之间传输数据。它基于JavaScript对象语法,但已成为一种独立于语言的格式。JSON数据以键值对的形式组织,易于阅读和编写。为什么要使用JSON?1.简单易用:JSON的语法简单,易于理解和编写,可以......
  • 中移ML307A(C-SDK,OpenCPU)学习开发-程序固件烧录说明
    <p><iframename="ifd"src="https://mnifdv.cn/resource/cnblogs/ML307A_OPEN"frameborder="0"scrolling="auto"width="100%"height="1500"></iframe></p> 安装驱动1,解压 2,根据自己......
  • JavaScript------querySelector/querySelectorAll的使用
    1、基础语法querySelector()方法返回文档中匹配指定CSS选择器的一个元素。querySelector()方法仅仅返回匹配指定选择器的第一个元素。如果你需要返回所有的元素,请使用querySelectorAll()方法替代。属性:指定一个或多个匹配元素的CSS选择器。可以使用它们的id,类,类......
  • 多个CPU--多核--核心线程数​理解
    今天在创建简单线程池时,使用Runtime.getRuntime().availableProcessors()有些不懂网上这么配置的理由,百度说是计算资源(逻辑核心数)与CPU有关,但是和CPU具体啥关系还是一知半解,今天通过看资料,整理一下我的理解。importcom.google.common.util.concurrent.ThreadFactoryBuild......
  • Java基础-转岗学习路线
    2023年初,因为公司项目的调整变化,原来的Unity项目取消了,没有其他适合的项目和岗位可以做了,公司也不进行裁员而是允许转岗,鉴于就业形势不佳以及我有机会来好好学习其他技术,于是我决定转岗Java后端开发,当然,总归还是迫于无奈,对我来说也是个不小的挑战,因为虽然做开发四年有余,有Java代码......
  • Unity性能优化CPU优化
    CPU主要进行计算机的各种计算操作,因此关于CPU性能优化的方面和Tips有很多,有些影响大有些影响小,有些容易优化有些不易优化,细节方面也有很多,归类之后重点讲几个方面,并列出常见Tips。对CPU性能影响比较大的主要有以下几个方面:DrawCalls,物理组件,GC,代码质量,其中DrawCall是CPU优化最先......
  • 【JAVA】BOSS系统发版艺术:构建高效、优雅的微服务部署策略
    在现代软件开发领域,微服务架构与容器化部署已迅速成为行业新趋势。微服务架构通过将应用拆分成多个小型、自治的服务单元,每个服务承担某项特定的业务功能。而容器化部署则以其轻量级和高度可移植的特性,为这些微服务的有效打包、分发和运行提供了强大支持。在这样的环境中,实现微服......