`

JDK监控命令

 
阅读更多

 

export命令

export CLASSPATH=.:CLASSPATH:xxx-1.0.0-SNAPSHOT.jar 

 

jstack   -l pid

解析:

daemon后台进程

prio=10 优先级是10 

tid在内存中的物理地址

nid线程id 16进制

WAITING 线程状态,可以是RUNNING ...



 

 

 

先简单介绍下常见dump 内存的两种方式

    XX:+HeapDumpOnOutOfMemoryError       

    jmap -dump:format=b,file=testdump.bin <pid>

 

jmap的常用命令:

   jmap -histo:live  pid  查看内存里面实例的内容以及数量

   jmap heap pid          查看内存中每个代内存的占有率

 

常用名词解释:

 Shallow size就是对象本身占用内存的大小,不包含对其他对象的引用,也就是对象头加成员变量(不是成员变量的值)的总和。

Retained size是该对象自己的shallow size,加上从该对象能直接或间接访问到对象的shallow size之和。

 

1.模拟堆内存溢出。

   code:

   

import java.util.ArrayList;
import java.util.List;

public class TestOOM {

	public static void main(String[] args) throws InterruptedException {
		
		List list=new ArrayList();
		OOM oom=new OOM();
		Thread.sleep(20*1000);
		for(int i=0;i<15;i++){
	//		System.out.println(i);
			list.add(new OOM());

			Thread.sleep(2*1000);
		}
		
	}
	
}

class OOM{
	
	byte[] bytes=new byte[1024*1024*8];
	
}

 

 

2.模拟常量池溢出。

    code:

import java.util.ArrayList;
import java.util.List;

public class OOM2 {
	
	public static void main(String[] args) throws InterruptedException {
		
		List list=new ArrayList();
		Thread.sleep(10*1000);
		for(int i=0;i<10000000;i++){
			list.add(String.valueOf(i).intern());
		}
		
	}

}

   java -Xmx1020m -Xms1020m -XX:PermSize=50m  -XX:MaxPermSize=50m -XX:+HeapDumpOnOutOfMemoryError  OOM2

  可以发现跑了一会,会出现OOM。

  

 此时dump文件已经生成了就可以用MAT工具打开了。

 

   

mat分析详细截图下次再补充下吧。

  参考一下文档:

   http://www.blogjava.net/rosen/archive/2010/05/21/321575.html

   http://www.blogjava.net/rosen/archive/2010/06/13/323522.html

  • 大小: 3.9 KB
  • 大小: 38.6 KB
0
0
分享到:
评论

相关推荐

    jdk常用命令

    本文将深入探讨JDK中的常用命令,这些命令对于任何Java开发者来说都是必不可少的知识点。通过理解并熟练运用这些命令,可以极大地提高开发效率。 1. **javac**:这是Java编译器,用于将源代码(.java文件)转换成可...

    最新收集JDK1.5.0命令大全.txt

    ### JDK 1.5.0 命令大全解析 #### 1. `java.exe` - **概述**:`java.exe` 是 Java 运行时环境的核心组件之一,用于执行 `.class` 文件(即编译后的 Java 字节码)。 - **用法**: - `java [选项] 类名`:启动一个...

    类加载机制与JDK调优命令.pdf

    JDK调优命令是针对Java虚拟机性能调优的工具,可以用来监控和分析Java程序的运行状况。其中,Jinfo命令能够查看正在运行的Java程序的扩展参数、JVM参数以及Java系统属性,等同于调用System.getProperties()方法。而...

    JDK命令大全新手的宝典

    ### JDK命令大全解析 #### 一、java.exe **功能:** 运行Java程序。 **说明:** `java.exe` 是Java开发工具包(JDK)的一部分,用于解释执行编译后的Java字节码(`.class` 文件)。它是Java编程语言的核心组成部分之...

    JDK监控和故障处理工具

    本篇文章将详细介绍Java开发工具包(JDK)中的一些重要监控和故障处理工具,这些工具可以帮助开发者识别和解决生产环境中的内存溢出问题,进而提升应用程序的性能和稳定性。 首先,我们来了解JDK提供的几个监控和...

    Jconsole JDK自带的监控程序

    例如,若要在本地监控名为`Java2Demo`的应用,则可以使用以下命令启动该应用: ```shell JDK_HOME/bin/java -Dcom.sun.management.jmxremote -jar JDK_HOME/demo/jfc/Java2D/Java2Demo.jar ``` 这里`JDK_HOME`是指...

    linux云端yum安装jdk等命令.docx

    此命令可以列出云端仓库中所有包含“jdk”的软件包名称,帮助用户了解当前可安装的不同版本的JDK。 ##### 2. 安装JDK 1.8 ```bash yum install -y java-1.8.0-openjdk ``` 这里选择了JDK 1.8进行安装,`-y`参数表示...

    jdk离线Windows安装包

    在实际开发工作中,我们还需要关注JDK的内存配置、JVM参数调整、性能监控等方面,这些都是Java开发中的重要知识点。此外,理解JDK的更新周期和版本策略,比如Oracle JDK与OpenJDK的区别,也能帮助我们更好地规划和...

    Java性能监控与调优Demo,主要学习各种JDK监控工具以及jvm调优-monitor_tuning_Demo.zip

    这个名为"monitor_tuning_Demo"的压缩包文件,很显然是为了教授如何使用JDK提供的监控工具以及进行JVM(Java虚拟机)的调优。在实际应用中,这些工具和技术对于优化Java应用性能、定位问题以及确保系统健康运行至关...

    JDK17安装包和文档

    同时,利用JDK17提供的工具,如`javadoc`生成API文档,`jconsole`监控Java应用性能,`jmap`分析堆内存,等等。 总之,JDK17作为Java生态系统的一部分,不仅提供了强大的开发工具,还带来了许多创新特性,旨在提升...

    jdk开发环境必备

    此外,JDK还提供了许多其他工具,如`javadoc`用于生成API文档,`jarsigner`用于签名和验证JAR文件,以及`jconsole`用于监控Java应用程序的性能等。 **JDK版本的选择** 虽然JDK 1.7在某些场景下仍然是必需的,但...

    jdk1.7 jdk1.7 jdk1.7

    3. 设置环境变量,包括`JAVA_HOME`指向JDK的安装目录,以及`PATH`包含`%JAVA_HOME%\bin`,确保系统可以找到Java命令。 4. 验证安装成功,通过命令行输入`java -version`,显示Java 7的信息。 **三、JDK 1.7的使用**...

    jdk-8u261-linux-x64.tar linux jdk

    在安装JDK 8u261后,开发者可以使用`javac`命令进行Java源代码的编译,`java`命令来运行Java程序,`jar`工具来创建和管理Java档案文件,以及其他如`jconsole`或`jvisualvm`等工具进行性能监控和分析。这个版本的JDK...

    (JDK大全) jdk1.6.0_24 解压免安装版

    此外,JDK还包含`jar`工具,用于打包和管理Java类库,以及`jconsole`这样的系统监控工具,可以实时查看Java应用程序的资源使用情况。 对于初学者,理解JDK的这些基本工具及其用法是学习Java编程的基础。对于经验...

    jdk-11.0.2版本安装包

    6. **性能调优**:利用JDK自带的JVisualVM或JProfiler等工具进行性能监控和分析。 **四、JDK 11.0.2 的持续学习与进阶** 深入学习JDK 11.0.2,不仅要理解其新特性,还需掌握如何有效地利用这些特性来编写高质量的...

    IBMJDK1.6linux.zip

    2. 使用解压命令(如`unzip IBMJDK16linux.zip`)解压缩文件。 3. 将解压后的目录移动到适当的位置,如`/usr/java`。 4. 配置环境变量,如`JAVA_HOME`、`PATH`和`CLASSPATH`,使其指向IBM JDK 1.6的安装路径。 5. ...

    jdk 1.8 安装包 jdk_64_1.8.0_40

    - **环境变量设置**:设置`JAVA_HOME`指向JDK的安装路径,将`%JAVA_HOME%\bin`添加到`PATH`环境变量,确保系统能够找到Java命令。 - **验证安装**:通过运行`java -version`和`javac -version`命令,检查Java运行...

    jdk-8u112-windows-x64jdk864.zip

    在Windows环境下,安装JDK 8u112之后,开发者还需要设置环境变量,如JAVA_HOME指向JDK的安装目录,PATH包含%JAVA_HOME%\bin,这样命令行就能识别并执行JDK的相关命令。完成这些配置后,开发者就可以开始编写、编译和...

    jdk下载/Linux64位 JDK8最新版本!!!

    3. **验证安装**: 最后,通过运行`java -version`和`javac -version`命令来确认JDK是否已正确安装。 一旦安装完成,开发者就可以开始使用JDK 1.8进行Java编程了。这包括编写、编译和运行Java源代码,使用Java Debug...

    JDK11 windows zip 解压缩版

    3. **使用JDK工具**:JDK11附带了众多开发工具,如`javadoc`用于生成API文档,`jconsole`用于监控Java应用的性能,`jmap`用于查看堆内存状况等。 **总结** JDK11 Windows Zip解压缩版是开发者在Windows环境下快速...

Global site tag (gtag.js) - Google Analytics