iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > JAVA >java 程序cpu占用过高排查
  • 672
分享到

java 程序cpu占用过高排查

java 2023-09-20 16:09:50 672人浏览 安东尼
摘要

1、top命令查看cpu占用最高程序 top 取得cpu占用最高的PID: 27791 2、判断java程序是直接运行在宿主机还是在容器中 方式一 cgroup cat /proc//cgroup 如果输出中包含有类似 /Docker/

1、top命令查看cpu占用最高程序

top

取得cpu占用最高的PID: 27791

2、判断java程序是直接运行在宿主机还是在容器

方式一 cgroup

cat /proc//cgroup

如果输出中包含有类似 /Docker/字符串,就表示该进程在 Docker 容器中。

方式二 lsns

  lsns命令查看程序的命名空间  ,如果显示的命名空间信息中有 ipc, mnt, net, pid, user, uts,那么该 PID 很可能在一个 Docker 容器中。

lsns -p PID

方式三 jps

   jps命令查看当前在服务器执行的java程序

jps

a、占用CPU最高的PID在jps的列表里,java进程可能运行在服务器,可直接执行jstack PID

b、占用CPU最高的PID不在jps列表里,java进程可能运行在容器中。

3、执行jstack

     a、java进程直接运行在宿主机上

        jstack命令查看线程、堆栈情况

jstack PID

     b、java进程运行在docker容器里

        (1)宿主机上直接jstack

                

#1、查看java进程在容器内的PIDdocker exec -it $containerid /bin/ps x#2、获取容器内JAVA_HOME路径docker inspect --fORMat '{{ range .Config.Env }}{{ if eq (index (split . "=") 0) "JAVA_HOME" }}{{ index (split . "=") 1 }}{{ end }}{{ end }}' $containerid#说明:docker inspect --format '{{.Config.Env}}' $containerid 是获取容器内的环境变量,如果没配环境变量需要到容器里查看,可用 which java 命令#3、执行jstackdocker exec -it $containerid $JAVA_HOME/bin/jstack $pid

        (2)进入到容器执行jstack

        定位docker容器。根据lsns -p PID获取到的信息(jar包名称可定位项目)定位到docker容器,需人工判断

lsns -p PIDdocker ps | grep  容器相关信息(名称、端口、容器ID等)

      进入到docker容器

docker exec -it 容器ID /bin/bash#如果/bin/bash不存在,可使用/bin/sh

     容器内查看进程ID,ps、jps、top命令都可以

     执行jstack PID

        

4、分析jstack信息

来源地址:https://blog.csdn.net/weixin_42758672/article/details/132213741

--结束END--

本文标题: java 程序cpu占用过高排查

本文链接: https://www.lsjlt.com/news/413092.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java程序占用CPU过高排查
    使用 top 命令查看高CPU进程,执行命令后可以按 1 键查看各CPU 内核负载情况。CPU使用率主要看us、sy两个指标。 假设 10760 是一个高CPU的进程。 使用 top -H ...
    99+
    2023-09-22
    jvm jstack Powered by 金山文档
  • java 程序cpu占用过高排查
    1、top命令查看cpu占用最高程序 top 取得cpu占用最高的PID: 27791 2、判断java程序是直接运行在宿主机还是在容器中 方式一 cgroup cat /proc//cgroup 如果输出中包含有类似 /docker/...
    99+
    2023-09-20
    java
  • Oracle怎么排查CPU占用过高的排查
    本篇内容主要讲解“Oracle怎么排查CPU占用过高的排查”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Oracle怎么排查CPU占用过高的排查”吧!  CPU...
    99+
    2024-04-02
  • 【Java高CPU占用排查步骤】
    Linux环境下 当Java应用程序在Linux系统上的CPU使用率达到100%时,可能会导致系统响应变慢,甚至无响应,影响应用程序的正常运行。下面是排查Java应用程序CPU使用率高的步骤: 1、使用top命令查看Java进程的CPU使用...
    99+
    2023-08-16
    java
  • Linux下如何排查占用CPU很高的Java程序
    这篇文章主要为大家展示了“Linux下如何排查占用CPU很高的Java程序”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Linux下如何排查占用CPU很高的Java程序”这篇文章吧。jstack...
    99+
    2023-06-28
  • java程序cpu占用过高的原因是什么
    Java程序CPU占用过高的原因可能有多种:1. 代码问题:Java程序中可能存在大量的循环、递归或者重复计算等操作,导致程序运行时...
    99+
    2023-08-08
    java
  • arthas排查jvm中CPU占用过高问题解决
    目录安装 小试找出CPU的元凶查看线程栈的参数安装 小试 记一次使用arthas排查jvm中CPU占用过高问题。这工具屌爆了 碾压我目前使用的全部JVM工具。 curl -O htt...
    99+
    2024-04-02
  • 排查解决Java进程占用内存过高
    排查解决Java进程占用内存过高 1 在项目部署运行之前1 检查JVM参数设置2 检查代码逻辑3 使用内存分析工具4 检查线程5 调整应用程序的设计7 调整硬件资源 2 在项目部署运行之后 JVM图片来源 1 在项目部署运...
    99+
    2023-08-24
    JVM JVM内存模型 Java GC Java JVM Java 内存分析
  • MySQL占用CPU过高,排查原因及解决方案
    目录一、mysql中的wait_timeout坑1、第一种修改方式 需重启MySQL(6.5为例)2、第二种修改方式 不需重启MySQL(数据库重启就失效)二、排查有没有地方占用SQL资源过多其中state的状态十分关键...
    99+
    2022-12-22
    MySQL占用CPU MySQL占用CPU过高 MySQL占用CPU原因
  • qt程序cpu占用过高如何解决
    如果QT程序的CPU占用过高,有以下几种可能的解决方法:1. 优化算法和代码:检查程序中可能存在的性能瓶颈和低效的代码,尝试优化它们...
    99+
    2023-09-16
    qt
  • w3wp占用CPU过高
    判定方法:1 在任务管理器中增加显示 pid 字段。就可以看到占用内存或者 cpu 最高的进程 pid !2 在命令提示符下运行 iisapp -a。注意,第一次运行,会提示没有js支持,点击确定。然后再次运行就可以了。这样就可以看到 pi...
    99+
    2023-01-31
    过高 w3wp CPU
  • Java进程内存占用过高,排查解决方法
    Java进程内存占用过高,排查解决方法 在Java应用程序开发过程中,我们经常会遇到Java进程占用内存过高的问题。这可能会导致系统性能下降、应用程序崩溃甚至无法启动。本文将介绍一些常见的排查和解决方...
    99+
    2023-10-20
    java 开发语言 Java
  • macOS mds_stores CPU占用过高
    当 macOS 的 mds_stores 进程占用过高的 CPU 使用率时,可能是由于 Spotlight 索引过程导致的。Spotlight 是 macOS 中用于搜索和索引文件的系统服务,而 mds_stores 是其索引进程之一。 以...
    99+
    2023-08-17
    macos
  • 排查WMI CPU使用率过高问题
    排查WMI CPU使用率过高问题的步骤如下:1. 确认问题:首先,确认系统的CPU使用率确实过高。可以通过任务管理器或性能监视器来查...
    99+
    2023-09-13
    CPU
  • NodeJs内存占用过高如何排查
    这篇文章给大家介绍NodeJs内存占用过高如何排查,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。问题起因最开始是因为一个定时功能上线后,线上的容器自动进行了扩容,由于 NodeJs 服务本身只有一些接口查询和 sock...
    99+
    2023-06-15
  • go语言程序cpu过高问题排查的方法详解
    目录一、前言二、问题排查过程2.1 通过top查看高cpu的进程pid2.2 通过top查看高cpu的线程tid2.3 通过dlv附加到进程,分析线程/协程cpu过载的堆栈2.4 在...
    99+
    2023-05-16
    go cpu占用高 go cpu过高排查 go性能分析工具
  • 【Java】 服务器cpu过高如何排查和解决?
    文章目录 前言一、常见能够引起CPU100%异常的情况都有哪些?二、服务器CPU使用率飙升异常,黄金4步排查法三、排查 CPU 故障的常用命令四、什么场景会造成 CPU 低而负载确很高呢?五、...
    99+
    2023-09-01
    java 服务器 开发语言
  • Linux系统CPU占用率较高问题排查思路
    作为工程师,在日常工作中我们会遇到 Linux服务器上出现CPU负载达到100%居高不下的情况,如果CPU 持续跑高,则会影响业务系统的正常运行,带来企业损失。 对于CPU过载问题通常使用以下两种方式即可快速定位: 方法一 第一步:使...
    99+
    2023-09-02
    linux 服务器 java Powered by 金山文档
  • Runtimebroker.exe进程占用CPU过高的解决方法
    这篇文章主要为大家展示了“Runtimebroker.exe进程占用CPU过高的解决方法”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Runtimebroker.exe进程占用CPU过高的解决方...
    99+
    2023-06-27
  • Linux系统内存占用过高排查方法
    以下以Ubuntu系统为例,内存占用过高可能是因为某个进程或程序占用了过多的内存,您可以按照以下步骤进行排查: 以上是一些基本的排查步骤,它们可以帮助您确定内存占用过高的原因,并采取相应的措施解决问题。 使用 top 命令查看系统当前...
    99+
    2023-09-12
    linux 运维 服务器
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作