`

JAVA虚拟机-JVM性能调优(五)

阅读更多

系统故障排查方法

 

1.操作系统层面:

 

1.1.cpu使用率过高
   1). us高(用户程序忙,死循环等),
   2).sy高(内核忙,线程多,写入繁忙等)
   3).wio高(写入量过大等) 像redis,es,memcache,mq之类中间件 读写频繁,wio值相对较大
1.2. 内存,主要看内存剩余量,是否发生swap
1.3. io繁忙,iostat, iotop诊断出那个程序在写文件,如果这些写入是必须的,写这些文件是否存在随机写,有无使用缓冲等。
1.4. 网络流量大,链接过多,too open manyfiles,是否接口响应慢导致的,否则是否该增加更多服务器。
  •  常用命令:top/free/vmstat/iostat
  •  常用工具:tsar,iftop 

tsar使用:(tsar --cpu/--mem/--tcp/--traffic)

 iftop使用查看流量(traffic)

 

 

2.应用程序JVM层面

 

2.1 线程有没有死锁,特点是某些业务接口慢或没响应,其余接口正常(jstack分析)
2.2 cpu某个核使用率持续处于高水平,可能是死循环导致 (jstack分析)
2.3 load不高,cpu使用率不高,可能是频繁gc导致 (jstat jmap分析)
  •  常用命令  jstat/jmap/jstack/jinfo

 

系统故障时,可利用脚本快速输出当前jvm快照:
PID:当前java进程ID

如下:
echo -e "Dumping the jdump ...\c"
jstack $PID > $DATE_DIR/jstack-$PID.dump 2>&1     //输出 jvm的堆栈快照
echo -e ".\c"
jinfo $PID > $DATE_DIR/jinfo-$PID.dump 2>&1       //输出 JVM的类加载,配置等信息
echo -e ".\c"
jstat -gcutil $PID > $DATE_DIR/jstat-gcutil-$PID.dump 2>&1  //输出当前gc的使用情况
echo -e ".\c"
jstat -gccapacity $PID > $DATE_DIR/jstat-gccapacity-$PID.dump 2>&1 //输出当前gc的空间使用率
echo -e ".\c"
jmap $PID > $DATE_DIR/jmap-$PID.dump 2>&1        //
echo -e ".\c"
jmap -heap $PID > $DATE_DIR/jmap-heap-$PID.dump 2>&1   //输出当前 堆中各个代使用情况
echo -e ".\c"
jmap -histo $PID > $DATE_DIR/jmap-histo-$PID.dump 2>&1 //输出当前 堆中存活的对象(最好top一下前20或30)
echo -e ".\c"

 

相关文章:

 

 

  • 大小: 36.7 KB
  • 大小: 36.7 KB
  • 大小: 9.1 KB
分享到:
评论

相关推荐

    深入理解Java虚拟机(jvm性能调优+内存模型+虚拟机原理).zip

    《深入理解Java虚拟机》是一本深度探讨Java虚拟机(JVM)的著作,涵盖了JVM性能调优、内存模型以及虚拟机原理等多个关键领域。本文将基于这些主题,详细阐述其中的重要知识点。 首先,我们要了解Java虚拟机(JVM)...

    java虚拟机(JVM)调优案例分析与MyEclipse性能调优实战

    java虚拟机(JVM)调优案例分析与MyEclipse性能调优实战

    深入理解Java虚拟机(jvm性能调优+内存模型+虚拟机原理).txt

    深入理解Java虚拟机详细视频教程,包括jvm性能调优、Java内存模型及虚拟机原理。有详细的文档资料,配合深入理解Java虚拟机书籍学习效果更佳

    揭秘Java虚拟机-JVM设计原理与实现

    《揭秘Java虚拟机-JVM设计原理与实现》这本书深入探讨了Java虚拟机(JVM)的工作原理及其在Java编程中的核心地位。Java虚拟机是Java平台的核心组成部分,它负责执行字节码,为开发者提供了跨平台的运行环境。以下是...

    java虚拟机(JVM)调优案例分析与Eclipse性能调优实战

    java虚拟机(JVM)调优案例分析与Eclipse性能调优实战

    深入虚拟机---JVM调优总结(摘自网上网上大牛分享).pdf

    在深入讨论JVM(Java虚拟机)调优之前,我们有必要先了解一下虚拟机的基本概念和堆栈的区分。Java程序在运行时,所有的数据都存储在JVM的内存模型中。在内存模型中,有两大重要区域,即堆(Heap)和栈(Stack)。堆主要...

    006-jvm性能调优

    JVM性能调优 JVM(Java Virtual Machine)是Java程序执行的核心组件,负责执行Java字节码指令。JVM性能调优是Java开发者应该掌握的重要技能,以下是JVM性能调优的知识点总结: JVM基础知识 * 虚拟机:是一种软件...

    2024年java面试题-jvm性能调优面试题第二部分

    在Java虚拟机(JVM)中,内存主要被划分为以下几个区域: 1. **堆区(Heap)**:堆区是用于存储初始化的对象、成员变量等数据的地方。所有对象实例和数组都需要在堆上分配空间。 - **新生代(Young Generation)**:由...

    Java虚拟机-jvm故障诊断与性能优化-源码

    在《实战Java虚拟机——JVM故障诊断与性能优化》一书中,作者深入探讨了如何对JVM进行故障排查和性能调优,通过源码分析来帮助读者理解其内部工作原理。下面我们将根据书中的主题,详细阐述相关的知识点。 1. **JVM...

    JVM系列之性能调优参考手册(实践篇).pdf

    标题《JVM系列之性能调优参考手册(实践篇)》涉及的知识点主要集中在Java虚拟机(JVM)性能调优的实践操作。JVM作为Java程序运行的基础环境,对程序性能有着决定性影响。本手册的目的是指导开发者如何对JVM进行性能...

    2024年java面试题-jvm性能调优面试题第一部分

    - **Java虚拟机栈**:用于存储每个线程的方法执行过程中所需的局部变量表、操作数栈、动态链接、方法出口等信息。 - **本地方法栈**:与Java虚拟机栈类似,但服务于本地方法的调用。 - **Java堆**:所有线程共享的...

    30+个视频+深入理解Java虚拟机(jvm优化+内存模型+虚拟机原理)

    根据提供的文件标题、描述、标签以及部分内容,我们可以深入探讨与Java虚拟机(JVM)相关的多个核心知识点。以下是对这些主题的详细阐述: ### Java虚拟机(JVM)概述 Java虚拟机(JVM)是一种用于执行Java字节码的...

    实战Java虚拟机——JVM故障诊断与性能优化

    通过阅读《实战Java虚拟机——JVM故障诊断与性能优化》,读者可以系统地学习JVM相关知识,提升故障排查和性能调优的能力。配合提供的源码和在线资源,读者可以在实践中加深理解和应用,使自己的Java开发技能更上一层...

    深入理解Java虚拟机视频教程(jvm性能调优+内存模型+虚拟机原理)视频教程

    第20节Java虚拟机-高性能Java虚拟机00:02:58分钟 | 第21节Java虚拟机-TaobaoVM00:03:06分钟 | 第22节Java内存区域-简介00:07:56分钟 | 第23节Java内存区域-Java虚拟机栈00:12:04分钟 | 第24节Java内存区域-程序...

    JVM性能调优-JVM内存整理及GC回收

    《JVM性能调优-JVM内存整理及GC回收》是一份深入探讨Java虚拟机(JVM)优化的重要学习资料,特别适合对JAVA编程有经验的开发者。这份文档详细阐述了JVM性能调优的关键概念,包括JVM内存模型、垃圾回收(Garbage ...

    java -jvm 内存分配和jvm调优

    Java JVM(Java虚拟机)内存分配与调优是Java开发者必须掌握的重要技能,它涉及到程序的性能优化和稳定性。在Java应用中,JVM扮演着至关重要的角色,它负责解析字节码、管理内存以及执行线程等。本文将深入探讨JVM...

    个人总结之—JVM性能调优实战

    本文档是一篇关于JVM(Java虚拟机)性能调优的经典实战总结。在实际应用开发与维护过程中,JVM性能调优是一个非常重要的话题,它直接关系到应用程序运行效率、资源利用以及用户体验等多方面因素。本总结旨在分享作者...

    JVM性能调优-JVM内存整理及GC回收.docx

    JVM性能调优-JVM内存整理及GC回收 JVM(Java Virtual Machine)性能调优是 Java 开发者需要掌握的重要技能之一。 JVM 的性能调优主要涉及到 JVM 内存整理、垃圾回收(GC)机制等方面。 Java 中的值传递和引用传递...

    Java虚拟机实战-垃圾回收及性能调优

    Java虚拟机实战-垃圾回收及性能调优

Global site tag (gtag.js) - Google Analytics