`

linux下查找java进程占用CPU过高原因

阅读更多

1. 查找进程

top查看进程占用资源情况
明显看出java的两个进程22714,12406占用过高cpu.
 
2.查找线程
使用top -H -p <pid>查看线程占用情况
 
3.查找java的堆栈信息
将线程id转换成十六进制
#printf %x 15664
#3d30
 
然后再使用jstack查询线程的堆栈信息
语法:jstack <pid> | grep -a 线程id(十六进制)
 
jstack <pid> | grep -a 3d30
 
这样就找出了有问题的代码了。
 
剩下的就是分析原因和修改代码了。

 来自出处:https://www.cnblogs.com/liusxg/p/5811085.html

分享到:
评论

相关推荐

    JAVA分析进程占用过大原因

    本文将基于提供的信息,详细介绍如何在Linux环境下诊断并解决JAVA进程CPU占用率过高的问题。 #### 一、识别问题所在 1. **查看系统整体状况**:首先通过`top`命令来获取系统当前的整体状态,包括CPU使用情况、内存...

    java引起的linux服务器性能问题查找

    #### 一、使用top命令查找高CPU占用的进程 1. **启动top命令**:首先通过命令行输入`top`来启动top命令。该命令能够实时显示当前系统中各个进程的资源使用情况。 2. **切换至线程模式**:在top命令界面中,默认显示...

    linux系统java服务自启动shell脚本及服务cpu内存占用监控脚本

    此脚本通过`pgrep`查找Java服务进程,然后使用`ps`命令获取CPU和内存使用率。如果CPU或内存超过预设阈值,它会发送警告邮件。你可以根据实际需求调整阈值和报警方式。 为了运行监控脚本,可以将其放置在`/etc/cron....

    linux 排查cpu负载过高异常.docx

    在Linux系统中,CPU负载过高可能会导致系统的性能下降,影响应用程序的正常运行。排查CPU负载过高异常是一项重要的系统维护任务。以下是一套详细的步骤来帮助你定位并解决这个问题。 首先,我们使用`top`命令来找到...

    使用dotnet-dump 查找 .net core 3.0 占用CPU 100%的原因解析

    公司的产品一直紧跟 .net core 3.0 preview 不断升级, 部署到 Linux 服务器后, 偶尔会出现某个进程CPU占用100%.  由于服务部署在云上, 不能使用远程调试; 在局域网内的Linux 服务器 或 Windows开发机上又不能重现这...

    CPU 高消耗排查

    - 通过分析`cpu1128.log`中的信息,可以找出占用CPU较高的线程正在执行的任务,进而判断其是否正常工作或是存在性能瓶颈。 #### 四、进一步分析线程 1. **转换线程ID为十六进制格式** - 在某些情况下,我们可能...

    教你找出 运行java项目,使cpu 100%,如何排查出是哪个jar包的哪个线程导致的

    一旦找到CPU占用高的Java进程,你可以使用`jstack`工具来获取该进程的线程堆栈信息。`jstack`会输出一个包含所有线程状态的文本文件,其中第一行显示的是dump的时间,紧接着是虚拟机信息,然后列出所有线程的状态。...

    linux 获取cpu shell

    `: 查找运行在`/home/tomcat5`目录下的Tomcat进程PID。 - `echo "the tomcat pid=$pid" &gt;&gt; $log;`: 记录Tomcat进程的PID到日志文件。 - `max=98;`: 设定CPU使用率的阈值为98%。 - `if [$used -ge $max]`: 如果CPU...

    Linux中怎么通过PID号找到对应的进程名及所在目录方法

    在示例中,通过`/proc/28990/cmdline`我们可以确认,Java进程是在`/opt/sonatype/nexus/bin/nexus`下启动的`nexus`应用。 另外,如果你还需要找到与特定端口号相关的进程,可以使用`netstat`或`ss`命令。例如,如果...

    系统的进程的查看信息的工具

    5. **`pgrep`和`pkill`**:这两个命令在Linux和Unix系统中用于查找和操作进程。`pgrep`根据名字搜索进程,而`pkill`则发送信号到匹配特定模式的进程。 6. **`strace`和`gdb`**:对于进程的调试和故障排除,`strace`...

    07.给tomcat进程起别名.docx

    本案例中,用户在Windows环境下安装了多个Tomcat服务,遇到CPU使用率异常升高的情况,但由于多个Java进程同时运行,无法直观地识别出问题所在。为了解决这个问题,我们可以通过为Tomcat进程设置别名来区分各个实例,...

    CPU热点定位

    1. **CPU热点**:指的是程序执行过程中占用CPU时间最长的代码段。 2. **jstack**:Java虚拟机提供的一种工具,用于生成当前Java进程的线程快照,可以帮助分析死锁、长时间阻塞等问题。 3. **top**:Linux下常用的...

    linux服务器应用卡死性能问题排查

    找出CPU占用率高的线程后,记录下其线程ID。线程ID是定位问题的关键,因为进程内部的线程可能有多个,每个线程都有自己的执行路径。 接下来,使用`jstack`命令对目标进程进行线程堆栈跟踪。`jstack`是Java提供的一...

    JVM---jstack分析Java线程CPU占用,线程死锁的解决

    2. **观察CPU占用**:在Windows上,使用任务管理器查看Java进程的CPU占用;在Linux上,使用`top`命令查看。 3. **获取线程信息**:通过`jstack`命令将线程信息输出到文件,例如`jstack 进程ID &gt; cpu.txt`。 4. **...

    获取系统目前的程序进程

    1. 性能监控:通过查看CPU或内存使用率高的进程,可以定位到可能引起系统慢或资源消耗大的原因。 2. 故障排查:当系统出现问题时,检查运行的进程有助于找出故障源头。 3. 自动化管理:在脚本或程序中获取进程信息,...

    java排查一个线上死循环cpu暴涨的过程分析

    1. **进程和线程排查**:在Linux环境中,可以使用`top`命令查看当前CPU资源的消耗情况,通过排序找到CPU占用最高的Java进程。在这个案例中,进程ID为13455的Java进程CPU使用率达到了500%。进一步,使用`jps`或`ps -...

    常用的linux系统监控命令整理.docx

    `ps -mp pid -o THREAD,tid,time` 或 `ps -Lfp pid` 用于找出占用CPU最多的Java线程。`pid`代表进程ID,`THREAD`显示线程,`tid`是线程ID,`time`则是累计CPU时间。 2. **`sar` 命令**: `sar`是一个强大的系统...

    读取机子上的进程

    了解如何读取机子上的进程不仅有助于监控系统的性能,还能帮助诊断问题,比如找出占用资源过多的进程,或者查找恶意软件。在日常使用和维护计算机时,掌握这些技能是非常实用的。通过上述方法,无论是系统管理员还是...

Global site tag (gtag.js) - Google Analytics