`
istone
  • 浏览: 63180 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

JAVA进程高CPU占用故障排查

 
阅读更多

解决过程:
1,根据top命令,找出占用cpu高的java进程。本例中发现PID为2633的Java进程占用CPU高达300%,出现故障。

2,找到该进程后,如何定位具体线程或代码呢,首先显示线程列表,并按照CPU占用高的线程排序:
[root@localhost logs]# ps -mp 2633 -o THREAD,tid,time | sort -rn

显示结果如下:
USER     %CPU PRI SCNT WCHAN  USER SYSTEM   TID     TIME
root     10.5  19    - -         -      -  3626 00:12:48
root     10.1  19    - -         -      -  3593 00:12:16

找到了耗时最高的线程3626,占用CPU时间有12分钟了!

将需要的线程ID转换为16进制格式:
[root@localhost logs]# printf "%x\n" 3626
e18

最后打印线程的堆栈信息:
[root@localhost logs]# jstack 2633 |grep e18 -A 30


将输出的信息发给开发部进行确认,这样就能找出有问题的代码

 

原文出处:

http://blog.chinaunix.net/uid-10449864-id-3463151.html

分享到:
评论

相关推荐

    java进程高CPU占用故障排查.txt

    ### Java进程高CPU占用故障排查 在日常的运维与开发工作中,经常遇到Java应用出现高CPU占用的问题。这类问题不仅会影响系统的稳定性和响应速度,还可能导致服务不可用。因此,对于此类故障的快速定位和解决变得尤为...

    用java获取cpu占用

    在Java编程环境中,获取CPU占用率是常见的系统监控任务,这对于性能分析、故障排查或资源管理至关重要。要实现这一功能,通常需要利用Java提供的操作系统接口,例如Java Management Extensions (JMX) 或者 sun.misc...

    java获取各进程的信息

    在Java开发过程中,有时候我们需要监控系统资源或特定进程的状态,例如CPU使用率、内存占用情况等。这在服务器性能监控、问题排查等方面尤为重要。本文将详细介绍如何使用Sigar库来实现这些功能。 #### Sigar简介 ...

    Jarboot 是一个强大的Java进程管理、诊断的平台,可以在线管理、监控及诊断本地和远程的Java进程.zip

    - **进程监控**:实时显示Java进程的内存使用、CPU占用、线程状态等关键指标,帮助用户了解应用的运行状况。 - **远程诊断**:支持远程连接到其他服务器上的Java进程,进行跨地域的远程管理与诊断,提升了运维的...

    Linux系统中CPU占用率较高问题排查思路与解决方法

    在某个生产环境的Java进程中,CPU占用率达到300%。首先,通过`ps -mp 2633 -o THREAD,tid,time | sort -rn`找到CPU使用率最高的线程(TID 3626)。接着,将3626转换为16进制(e18),再用`jstack 2633 | grep "e18" ...

    windows下查看线程的cpu占用率工具 procexp

    1. **线程级CPU利用率显示**:ProcExp 可以展示每个进程内的所有线程以及它们各自的CPU占用率,这对于定位高CPU使用率的问题至关重要。你可以看到哪个线程正在消耗最多的处理器资源,从而针对性地进行问题排查。 2....

    Java线上故障排查方案.pdf

    1. **系统异常**:例如CPU占用率过高、磁盘空间100%满、系统可用内存过低等。 2. **业务异常**:如服务运行一段时间后自动退出、服务间调用耗时过长、多线程并发处理时出现问题、线程死锁等。 #### 三、如何定位...

    websphere cpu性能问题

    【描述】:本文将深入探讨当Websphere Application Server (WAS)出现异常高的CPU占用率时,如何识别问题源头并采取相应的故障排除措施。这涉及到对操作系统层面的数据收集、线程分析以及使用调试工具如dbx进行详细...

    在线管理监控及诊断本地和远程的Java进程源代码.zip

    5. 数据可视化:为了直观地展示Java进程的性能数据,源代码可能包含了数据可视化组件,如使用Echarts、Highcharts或D3.js等JavaScript库来创建图表,展示内存使用率、CPU占用、线程状态等信息。 6. 安全性:在线...

    show-busy-java-threads-jvm-cpu.rar

    在Java应用程序的运行过程中,有时候会遇到JVM(Java虚拟机)CPU使用率过高的问题。这通常是由于线程执行不恰当或者...在日常开发和维护工作中,理解并熟练运用这样的工具是非常必要的,它能有效提升故障排查的效率。

    windows进程监控java版

    - **进程信息获取**:使用`OpenProcess`和`QueryProcessInformation`函数获取进程的详细信息,如PID、内存使用、CPU占用率等。 - **实时监控**:通过定时任务或者事件驱动机制,定期查询进程状态,实现对CPU、内存...

    java如何获取系统CPU、内存占用

    需要注意的是,上述代码获取的是整个操作系统的CPU和内存占用,而不是仅仅针对当前运行的Java进程。如果你需要监控Java应用程序自身的内存占用,可以使用`java.lang.instrument.Instrumentation`接口或者`java.lang....

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

    6. **`strace`和`gdb`**:对于进程的调试和故障排除,`strace`在Linux中用于跟踪系统调用和信号,揭示进程如何与内核交互。`gdb`(GNU调试器)是一个强大的程序调试工具,可以对运行中的进程进行单步调试,查看变量...

    Arthas - Java 诊断利器.docx

    启动过程中,Arthas会列出正在运行的Java进程,让你选择想要诊断的应用进程。选定后,Arthas便会在该进程中运行,准备提供各种诊断服务。 ### 监控Dashboard Arthas的监控Dashboard提供了丰富的视图,帮助开发者...

    MooInfo是OSHI 的一种可视化实现,用于查看有关系统和硬件的信息 如操作系统,进程,内存,CPU,磁盘,设备,传感器等

    2. **进程信息**:展示正在运行的进程列表,包括进程ID、名称、状态、CPU和内存使用情况等,这对于系统性能分析和故障排查很有帮助。 3. **内存状态**:提供总内存、已用内存、空闲内存等数据,以及内存分配和使用率...

    07.给tomcat进程起别名.docx

    在IT运维过程中,特别是在服务器管理...通过以上措施,我们可以有效地对多个Tomcat实例进行区分,当遇到性能问题时,能够快速定位到具体是哪个Tomcat实例导致的CPU使用率过高,从而更有效地进行故障排查和资源优化。

    动态显示CPU利用率

    - 故障排查:通过观察CPU利用率的变化,可以帮助定位性能问题的源头,比如某个进程异常消耗资源。 总之,动态显示CPU利用率是一个强大的工具,它能够帮助我们实时了解系统的运行状态,及时发现并解决问题,提高系统...

    线上故障排查全套路,总有一款适合你1

    可以使用`ps`找到目标进程的PID,然后使用`top -H -p pid`找出CPU占用高的线程。将PID转换为16进制后,通过`jstack pid | grep 'nid' -C5 --color`查看堆栈详情。重点关注`WAITING`和`TIMED_WAITING`状态的线程,...

    企业级IT运维之WebLogic实战-第13章.pdf

    《企业级IT运维之WebLogic实战-第13章》主要关注的是在企业环境中WebLogic服务器遇到的一个常见问题——异常高CPU占用率故障。WebLogic是Oracle公司开发的一款企业级Java应用服务器,它广泛用于部署和管理Java EE...

Global site tag (gtag.js) - Google Analytics