`
nathan09
  • 浏览: 155327 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

java问题诊断方法及工具

 
阅读更多
线上系统出现问题时,需要记载系统当前运行状况,总结一下,大概需要关注以下几个方面:
1.负载:——top命令
在linux上,执行top 等命令,关注load, Memory, CPU 等系统概况,以及关注CPU和memory 占用较多的进程。
使用top -H, 并按 shift+p 对CPU进行排序,找到当前占用CPU最多的线程。(top -u bpm -H),-H 按线程显示,否则按进程显示
使用 ps -T <pid> |wc -l 找到当前运行的java 进程的线程数。

2.Thread dump——jstack
kill -3 <pid>
jstack <pid> 截获当前java 进程的线程堆栈。

(java thread dump相关文章)


3. Memory——jmap
jmap -heap <pid> 可以得到当前堆内存情况。
如果怀疑有内存问题,还可以dump 堆对象。
Java5:jmap -heap:format=b <pid>
Java6: jmap -dump:format=b,file=heap.bin <pid>
注意:这个操作对机器有很大的性能影响。在java 6中,这个也可以通过java 启动参数中加入-XX:HeapDumpPath=/home/nasdaq/oom.hrof -XX:+HeapDumpOnOutOfMemoryError 实现OOM时自动memory dump

4.GC——jstat
jstat -gcutil <pid> 得到当前应用的gc 情况。


5.网络连接情况
得到与网络各机器的连接数
netstat -na|grep ESTABLISHED|awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -r
以上命令执行结果是:
连接数量 连接ip
也可以通过netstat 具体关注某个端口的连接数。

6.日志

备份当前应用日志。


7.工具:

Heap Dump分析工具:Memory Analyzer (MAT):http://www.eclipse.org/mat/

Thread Dump分析工具:Lockness:http://lockness.plugin.free.fr/home.php



分享到:
评论

相关推荐

    JAVA对象以及数据的工具类

    在Java编程语言中,工具类(Utils)是包含各种实用方法的类,这些方法通常用于执行常见的任务,如类型转换、字符串操作、集合处理等。它们使得代码更加简洁且易于维护,因为它们提供了通用功能的封装,避免了重复...

    阿里Java诊断工具Arthas

    阿里Java诊断工具Arthas是一款由阿里巴巴开源的高效、便捷的命令行工具,它专为了解决Java开发者在日常开发过程中遇到的各种问题而设计。Arthas提供了多种实用功能,如查看类信息、方法调用链、监控内存、分析线程、...

    JAVA日期判断方法小结

    "JAVA日期判断方法小结" 在JAVA语言中,日期判断是非常重要的一部分,以下是常见的日期判断方法的总结: 1. 判断某年是否为润年 判断某年是否为润年是日期判断的基本方法之一。该方法可以使用以下代码实现: ```...

    javacore分析工具

    JavaCore分析工具是一种在Java应用程序出现问题时,如CPU占用过高或出现Out Of Memory (OOT)错误时,用于诊断和分析的利器。它主要用于Java虚拟机(JVM)的故障排查,尤其是在使用像Websphere或Weblogic这样的企业级...

    基于java的开发源码-Cubic java应用诊断工具.zip

    基于java的开发源码-Cubic java应用诊断工具.zip 基于java的开发源码-Cubic java应用诊断工具.zip 基于java的开发源码-Cubic java应用诊断工具.zip 基于java的开发源码-Cubic java应用诊断工具.zip 基于java的开发...

    Java诊断利器Arthas排查问题实践.pptx

    Java 诊断利器 Arthas 排查问题实践 Arthas 是 Alibaba 开源的 ... Arthas 是一个功能强大且轻松上手的 Java 诊断工具,开发者可以使用 Arthas 快速诊断和解决 Java 应用程序中的问题,提高开发效率和服务可用性。

    java判断文件编码格式 三方工具包 cpdetector_1.0.10.jar

    除了`cpdetector`,Java社区还提供了其他类似的库,如`ICU4J`的`charsetdetector`模块,这些工具包的存在都体现了Java在处理文本编码问题上的灵活性和便利性。 在处理`ext`这样的压缩文件时,开发者通常需要先将其...

    JAVA代码优化工具

    2. **VisualVM**: 这是由Oracle提供的一个全功能的Java诊断工具,包含了内存分析、线程分析、CPU性能分析等模块。它可以显示实时的JVM性能数据,帮助开发者定位性能瓶颈。 3. **YourKit Java Profiler**: YourKit...

    jca javacore分析工具

    Java Core (javacore) 和 Heap Dump 文件是Java应用程序出现问题时进行诊断的重要工具。它们提供了关于JVM(Java虚拟机)运行状态的详细信息,帮助开发者识别和解决性能问题、内存泄漏以及线程阻塞等问题。JCA(Java...

    Java在线问题诊断工具.pdf

    Java在线问题诊断工具是一种用于监控和诊断Java应用程序运行时问题的工具,它可以动态地追踪正在运行的Java程序,而对运行中的代码侵入性小,对性能的影响可以忽略不计。这类工具通常利用Java代码和JavaSE的新特性...

    java判断参数是否为空工具类 java判断对象属性是否全部为空

    java判空工具类 可以判断字符串数组,字符串类型,List对象集合,Map集合map,object&gt;,map和多个String参数,对象类型,是否为空。 java判断对象属性是否全部为空,只要有一个属性不为空,那么就不是所有的属性值都...

    Java校验参数工具类

    这是自己开发的一个参数校验的工具类,可用于对实例的属性进行非空校验。包括全部校验和任一校验两种校验方式。 举例:CheckParamsUtils.checkParamsAll(requestBean, "name", "age","gender");

    java 判断汉字 汉字的判断

    ### Java判断字符串是否包含汉字的方法 在开发过程中,有时我们需要判断一个字符串是否包含汉字,并根据判断的结果执行不同的逻辑。这通常出现在需要处理多语言输入的情况下,例如用户输入验证、文本分析等场景。...

    java万能判空工具类-可直接使用

    本文将详细介绍一个名为"CheckUtil"的Java万能判空工具类,它提供了便捷的方法来避免NullPointerException。 `CheckUtil`工具类的主要功能是提供一系列静态方法,用于检查对象、集合、数组、字符串等是否为空。这样...

    深入诊断Java中的JVM问题:工具、技巧与最佳实践

    本文将详细介绍如何在Java中诊断JVM问题,包括诊断工具的使用、性能调优技巧和最佳实践。 诊断JVM问题是确保Java应用性能和稳定性的关键步骤。通过本文的详细介绍,读者应该能够了解JVM问题诊断的重要性,掌握使用...

    java内存泄漏分析工具

    为了有效地诊断和解决这类问题,开发者需要借助特定的分析工具。本篇将详细探讨Java内存泄漏及其相关的分析工具。 内存泄漏是指程序在申请内存后,无法释放已不再使用的内存空间。在Java中,由于垃圾收集器的存在,...

    java内存泄露、溢出检查方法和工具

    解决内存溢出问题通常需要调整JVM的内存参数,如`-Xms`和`-Xmx`用于设置堆的初始大小和最大大小,以及`-XX:MaxPermSize`(对于较旧的JVM版本)或`-XX:MaxMetaspaceSize`(对于Java 8及以上版本)来控制方法区的大小...

    Cubic java应用诊断工具.rar

    4.Arthas,java诊断工具; java的分析工具有以下几种 1.VisualVM VisualVM是一个java应用程序性能分析和运行监控工具,可以监控、分析线程信息,其默认监视内存和CPU,常用于监测、控制java应用程序横跨整个网络...

    Arthas开源Java诊断工具包

    Arthas是一款强大的开源Java诊断工具包,专为解决开发者在日常开发过程中遇到的各种问题而设计。它提供了丰富的命令行工具,帮助我们更好地理解和优化Java应用程序的运行状态。"火焰图"是Arthas中一个重要的特性,...

Global site tag (gtag.js) - Google Analytics