`
lengyu
  • 浏览: 2547 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类
最新评论

jvm OOM 排查

    博客分类:
  • jvm
 
阅读更多

       最近公司的测试环境的Cassandra OOM了,借此机会顺便也回顾一下之前学习的JVM,在这总结一下。本文所指JVM是针对Sun的官方HotSpot VM。

 

首先了解一些基本JVM知识。

1、JVM主要内存结构

     a、堆(heap)

          堆主要分为新生代、老年代、永久代

          新生代:存储java实例对象即数组,即:通过 new 生成的对象首先放入此区域,特殊情况也直接放入老年代

          老年代:通过若干次YGC(新生代进行垃圾回收)以后,仍然活下来的对象会被放入此区域

          永久代:Class的Meta信息以及运行期的常量池

     b、栈(stack)

           主要存放对象的引用以及局部变量等

2、java提供的jvm查看命令

     在jdk的bin目录下面好多Java提供的命令可以直接使用,jvm相关的如下:

     1、jps,类似于linux或unix的ps -ef,用于获取当前JVM的实例进程相关的信息,包括进程号,启动类全名,main方法参数、实例的设置的jvm参数等。

          默认是只列出进程号,启动类SimpleName(就是不含包名)

          可带参数如下:

          -l 列出启动类全名,就是main方法所在的类全名

          -m 列出main方法的参数

          -v  列出启动的设置jvm参数

     2、jmap,用于查看当前堆使用情况

          使用示例:jmap 参数 jvm实例进程号

          常用参数如下:

          -heap 列出当前堆使用情况

          -permstat 列出永久代统计情况,里面包含一个重要的统计,就是当前常量池,包含多少个String,并占多大内存

          -help,列出帮助,显示其他可选的参数

     3、jstat,列出当前GC相关

          使用参数 -help获取更多官方信息

3、jvm的图形化工具排查

     jconsole,visualVM,MemoryAnalyzerTool等

 

待续。。。先下班

 

分享到:
评论

相关推荐

    JVM堆内存分析工具,OOM排查工具。包括ha和mat两种

    1. **生成堆转储文件**:当JVM出现OOM或内存问题时,可以通过`-XX:+HeapDumpOnOutOfMemoryError` JVM参数让JVM自动生成堆转储文件,或者手动通过`jmap`命令生成。 2. **加载堆转储**:在HA或MAT中打开这个文件,...

    OOM分析工具-MemoryAnalyzer.zip

    MemoryAnalyzer(MAT)是IBM开发的一款强大的JVM堆内存分析工具,它能够帮助开发者深入理解内存消耗,识别内存泄漏和不必要的对象留存,从而有效地解决OOM问题。 MAT主要基于.hprof文件进行分析,这种文件格式是...

    OOM小例子,用于验证oom出现以及对应的问题排查

    本篇将通过一个简单的OOM例子来探讨这个问题的发生原因、如何复现以及如何进行问题排查。 一、OOM现象与原因 当Java应用出现OOM时,JVM会抛出`java.lang.OutOfMemoryError`异常。这通常由以下几种情况引起: 1. *...

    JVM入门实战/arthas实战/垃圾回收算法/垃圾回收器/jvm内存模型分析

    2、基于代码排查OOM问题,拒绝空讲; 3、总结JVM通用的调优思路; 4、基础知识讲解透彻、详尽; 5、JVM零基础也能听懂。 第一节:学习JVM的意义和目标 1.1 意义: 1.2 目标: 第二节:JVM内存模型 1.1 概念 1.2 ...

    线上adplatform集群机器cpu飙升问题排查总结.docx

    JVM性能优化与问题排查经验总结 本文总结了线上adplatform集群机器CPU飙升问题的排查经验,并对JVM性能优化与问题排查进行了详细的分析和总结。 JVM性能优化 在排查线上adplatform集群机器CPU飙升问题时,我们...

    对JVM调优的总结经验.docx

    1. 在线排查:可以在线排查 JVM 的问题,包括线程安全问题、OOM 问题等。 2. JVM 观察:可以观察 JVM 的运行情况,包括 CPU 占用率、内存占用率、垃圾回收的信息等。 3. 线程定位:可以定位 JVM 进程中的线程问题,...

    1. JVM 内存结构的组成、各部分功能作用,学会利用内存诊断工具排查内存相关问题;2. JVM 的招牌-jvm.zip

    了解JVM内存结构及其功能对于优化Java应用程序的性能和排查内存问题至关重要。 首先,我们来详细探讨JVM的内存结构。在Java中,内存主要分为以下几个区域: 1. **程序计数器(Program Counter Register)**:每个...

    jvm_jvm新手_jvm_

    - **内存溢出**(OOM):当JVM无法分配新的内存时发生,可能由于堆空间不足、方法区过大等原因。 - **内存泄漏**:程序中已不再使用的对象未能被GC回收,导致可用内存逐渐减少。 6. **JVM性能监控与故障排查工具*...

    JVM夺命连环问面试题分享给需要的同学.docx

    你有哪些手段来排查OOM的问题? 分析dump文件日志,查找问题 jmap 命令生成 dump 文件 使用 jcmd 命令生成 dump 文件 2.使用相关工具,比如阿里的 Arthas 工具进行分析 3.使用jmap -histo 命令排查

    如何排查weblogic内存不足

    * Java 堆中的内存不足:如果 JVM 不能在 Java 堆中获得更多内存来分配更多 Java 对象,将会抛出 Java 内存不足 (Java OOM) 错误。 * 本地堆中的内存不足:如果 JVM 无法获得更多本地内存,它将抛出本地内存不足...

    实战JAVA虚拟机 JVM故障诊断与性能优化带源码

    这本书提供了丰富的源码实例,让读者能够深入理解JVM的工作原理,并掌握其故障排查和性能调优的技巧。 首先,我们要明白JVM是Java语言的核心组成部分,它负责运行Java程序,提供跨平台的执行环境。JVM的主要组件...

    JVM常用参数设置

    理解并正确配置JVM参数对于优化应用程序性能、内存管理和故障排查至关重要。本文将深入探讨JVM的常用参数设置,以及它们如何影响Java应用程序的运行。 一、JVM内存设置 1. **堆内存**: - `-Xms`:初始堆大小,...

    jvm工作原理资料

    了解JVM的工作原理对于优化Java应用程序性能、排查问题以及深入理解内存管理至关重要。以下是对JVM工作原理的详细阐述: 1. **类加载机制**:JVM在运行时动态加载类,这个过程包括加载、验证、准备、解析和初始化五...

    JVM启动参数应用集合

    了解并正确使用这些JVM启动参数,可以帮助开发者提升应用程序的运行效率,防止内存溢出(OOM)等问题,以及进行有效的性能调优和故障排查。在实际开发中,应根据应用的特性和需求灵活调整这些参数。对于非标准和非...

    JVM入门解析.pptx

    Java虚拟机(JVM)是Java程序运行的核心组件,它为Java代码提供了平台无关的运行环境。在JVM中,内存被划分为几个不同的区域,这些区域各自有不同的功能...理解JVM的工作原理对于优化Java程序性能、排查问题至关重要。

    线上排查思路,一些关于服务器排查的命令与案例

    服务器排查思路和命令案例 服务器排查思路是指在服务器出现问题时,通过一系列的排查步骤和命令来定位和解决问题的过程。下面将针对磁盘不足、CPU 过高和 Tomcat假死三种常见的问题进行排查思路和命令案例的讲解。 ...

    一次OOM问题排查过程实战记录

    上周运维反馈线上程序出现了OOM,程序日志中的输出为 ...看线程名称应该是tomcat的nio工作线程,线程在处理程序的时候因为无法在堆中分配更多内存出现了OOM,幸好JVM启动参数配置了-XX:+HeapDumpOnOutOfMemoryE

    [OOM] 记一次线上OOM的问题 - ado19861

    在Java开发过程中,内存溢出(Out Of Memory,简称OOM)是...通过以上步骤,我们可以逐步排查并解决Java应用中的OOM问题,提高系统的稳定性和性能。记住,理解并掌握内存管理和优化技巧是每个Java开发者必备的能力。

    jvm理解pdf

    5. **内存溢出**:如果堆或方法区无法分配足够的内存,会导致OOM(Out Of Memory)。通过调整JVM内存设置,如-Xms、-Xmx控制堆大小,-XX:MaxMetaspaceSize控制元空间大小,可以预防溢出。 6. **JVM调优**:通过监控...

Global site tag (gtag.js) - Google Analytics