java 内存分析工具 生成 dump_java内存检测工具

java 内存分析工具 生成 dump_java内存检测工具jmap-heap1234查看进程号为1234的Java程序的整个jvm内存状态jmap-histo1234查找进程号为1234的java程序的jvm堆中对象详细占用情况jmap-dump:format=b,file=/my.dump1234导出1234进程的java程序的整个JVM信息jhat-J-Xmx1024M/my.dump,启动web服务查看jmap导出的jav…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

jmap -heap 1234 查看进程号为1234的Java程序的整个jvm内存状态

jmap -histo 1234 查找进程号为1234的java程序的jvm堆中对象详细占用情况

jmap -dump:format=b,file=/my.dump 1234  导出1234进程的java程序的整个JVM信息

jhat -J-Xmx1024M /my.dump, 启动web服务查看jmap导出的java程序的jvm信息。

jstack 1234 查看1234进程的所有堆栈信息。

以上命令的功能都可以从jVisualVM程序获取,双击运行即可。

jmap是java自带的工具

查看整个JVM内存状态

jmap -heap [pid]

要注意的是在使用CMS GC 情况下,jmap -heap的执行有可能会导致JAVA 进程挂起

查看JVM堆中对象详细占用情况

jmap -histo [pid]

导出整个JVM 中内存信息

jmap -dump:format=b,file=文件名 [pid]

jhat是sun 1.6及以上版本中自带的一个用于分析JVM 堆DUMP 文件的工具,基于此工具可分析JVM HEAP 中对象的内存占用情况

jhat -J-Xmx1024M [file]   (此处的file指的是jmap -dump导出的内存数据文件)

执行后等待console 中输入start HTTP server on port 7000 即可使用浏览器访问 IP:7000

eclipse Memory Analyzer

Eclipse 提供的一个用于分析JVM 堆Dump文件的插件。借助这个插件可查看对象的内存占用状况,引用关系,分析内存泄露等。

kill -3 [pid]

在Linux 上找到Java所在的进程号,然后执行以上命令,线程的相关信息就输出到console

jstack

jstack 是sun JDK 自带的工具,通过该工具可以看到JVM 中线程的运行状况,包括锁等待,线程是否在运行

执行 jstack [pid] ,线程的所有堆栈信息

“http-8080-10” daemon prio=10 tid=x0a949bb60 nid=0x884  waiting for monitor entry […]

“http-8080-10” 这个线程处于等待状态。 waiting for monitor entry 如果在连续几次输出线程堆栈信息都存在于同一个或多个线程上时,则说明系统中有锁竞争激烈,死锁,或锁饿死的想象。

“http-8080-11” daemon prio=10 tix=xxx nid=xxx in object.wait() […]

java.lang.Thread.State:waiting (on object monitor)

该表示http-8080-11的线程处于对象的Wait 上,等待其他线程的唤醒,这也是线程池的常见用法。

“Low Memory Detector”daemon prio=10 tix=xx nid=xxx runnable […] java.lang.Thread.State:runnable

表示“Low Memory Detector” 的线程处于Runable状态,等待获取CPU的使用权.

jvisualvm

一.Java VisualVM 概述

对于使用命令行远程监控jvm 太麻烦 。 在jdk1.6 中 Oracle 提供了一个新的可视化的。 JVM 监控工具 Java VisualVM 。jvisualvm.exe 在JDK 的 bin 目录下。

双击启动 Java VisualVM 后可以看到窗口左侧 “应用程序 ”栏中有“ 本地 ”、“远程 ” 、“快照 ”三个项目。

“本地 ”下显示的是在 localhost 运行的 Java 程序的资源占用情况,如果本地有 Java 程序在运行的话启动 Java VisualVM 即可看到相应的程序名,点击程序名打开相应的资源监控菜单,以图形的形式列出程序所占用的 CPU 、 Heap 、 PermGen 、类、线程的 统计信息。

“远程” 项下列出的远程主机上的 Java 程序的资源占用情况,但需要在远程主机上运行 jstatd 守护程序

VisualVM分为 3 类, 本地 它会自动侦测到,并显示出来

双击Local 下的任一节点,看到右边的变化 ,你可以监控 CPU ,内存,类,线程等运行状况,实时监控服务器性能。

右键 VisualVM我们可以看到 Thread Dump, Heap Dump

做 Thread Dump 很快,马上就可以看到结果

Heap Dump要稍花费一些时间(可以看到当前 heap 里对象的数量及占用的比例,做 OOM 很好用)

对其功能不再做描述,可以查阅网上相关质量,我们主要讲的是如何使用 VisualVM 远程监控。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/186854.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • oracle安装教程_卸载oracle11g

    oracle安装教程_卸载oracle11g不知道为什么不选择基本安装使用的高级安装启动OUI后出现“选择安装方式”窗口,我们选择:高级安装  步骤3:出现“选择安装类型”窗口,选择我们需要安装的版本。我们在此肯定是选择企业版。  图片看不清楚?请点击这里查看原图(大图)。  至于产品语言不用选择,它会根据当前系统的语言自动调整!  步骤4:出现“安装位置”窗口  图片看不清楚?请点击这里查看原…

  • intellij怎么创建Java_intellij idea创建java项目

    intellij怎么创建Java_intellij idea创建java项目IntelliJIDEA如何创建一个普通的java项目,及创建java文件并运行一、创建java项目:1、打开idea软件,点击界面上的CreateNewProject或file-》new-》project;2、出现以下界面,选中Java,然后选择jdk,最后点击Next,进行下一步(我的是jdk1.8)3、这里是选择生成项目时是否创建java文件,勾选上JavaHelloWorld后会生成一个默认的Helloworld文件,点击Next进行下一步,也可以都不勾选4、给项目命名,

  • Java编程新手入门要多久[通俗易懂]

    Java编程新手入门要多久[通俗易懂]1.Java是什么?Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点。J…

  • 通过CLR API实现C++调用C#代码交互

    通过CLR API实现C++调用C#代码交互

  • pycharm 掌握这些快捷键,你就是大神!!

    pycharm 掌握这些快捷键,你就是大神!!最重要的快捷键1.ctrl+shift+A:万能命令行2.shift两次:查看资源文件新建工程第一步操作1.module设置把空包分层去掉,compactemptymiddlepackage2.设置当前的工程是utf-8,设置的Editor–>FileEncodings–>全部改成utf-8,注释1.ctrl+/:单行注释…

  • python 列求和_python分数序列求和

    python 列求和_python分数序列求和欢迎访问少儿编程网(http://www.pxcodes.com)在python求和的方法:首先定义数组,并输入求和的整数;然后使用for循环,保存在数组中;接着调用sum函数,计算所有整数的和;**后输出计算得到的所有整数和。6MX少儿编程网-https://www.pxcodes.com6MX少儿编程网-https://www.pxcodes.com本教程操作环境:windows7系统、pyt…

    2022年10月27日

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号