zoukankan      html  css  js  c++  java
  • 内存监控工具:jmap命令

    jmap命令有下面几种常用的用法:

    •jmap [pid]

    •jmap -histo:live [pid] >a.log

    •jmap -dump:live,format=b,file=xxx.xxx [pid]

    用得最多是后面两个。其中,jmap -histo:live [pid] 可以查看当前Java进程创建的活跃对象数目和占用内存大小。

    jmap -dump:live,format=b,file=xxx.xxx [pid] 则可以将当前Java进程的内存占用情况导出来,方便用专门的内存分析工具(例如:MAT)来分析。

    查看当前Java进程创建的活跃对象数目和占用内存大小:
    jmap -histo:live 18162 >test.log
    
    
    将当前Java进程的内存占用情况导出来,方便用专门的内存分析工具(例如:MAT)来分析:
    jmap -dump:live,format=b,file=heapt18162.bin 18162

    利用Eclipse Memory Analyzer Tool(MAT)打开heapt18162.bin文件:

    下载地址:https://eclipse.org/mat/downloads.php

     

    更多文章:https://www.javatang.com/archives/2017/10/30/53562102.html

    https://blog.csdn.net/a1510841693/article/details/104770912

    https://blog.csdn.net/lkp1603645756/article/details/82792117?locationNum=9&fps=1


    jmap(Memory Map for Java)命令用于生成堆转储快照(一般称为heapdump或dump文件)。
    如果不使用jmap命令,要想获取Java堆转储快照,还有一些比较“暴力”的手段:如-XX:+HeapDumpOnOutOfMemoryError参数,可以让虚拟机在OOM异常出现之后自动生成dump文件,通过-XX:+HeapDumpOnCtrlBreak参数则可以使用[Ctrl]+[Break]键让虚拟机生成dump文件,又或者在Linux系统下通过Kill -3命令发送进程退出信号“吓唬”一下虚拟机,也能拿到dump文件。
    jmap的作用并不仅仅是为了获取dump文件,它还可以查询finalize执行队列、Java堆和永久代的详细信息,如空间使用率、当前用的是哪种收集器等。
    jmap有不少功能在Windows平台下都是受限的,除了生成dump文件的-dump选项和用于查看每个类的实例、空间占用统计的-histo选项在所有操作系统都提供之外,其余选项都只能在Linux/Solaris下使用。
     
    jmap命令格式:
    jmap [ option ] vmid

    option选项的合法值与具体含义见表4-4。

    表4-4 jmap工具主要选项
    jmap -dump:format=b,file=heapt13817.bin 13817

    文章来源:深入理解Java虚拟机:JVM高级特性与最佳实践(第2版)4.2.4 jmap:Java内存映像工具


  • 相关阅读:
    金丝雀发布、滚动发布、蓝绿发布到底有什么差别?关键点是什么?
    分析占用了大量 CPU 处理时间的是Java 进程中哪个线程
    阿里巴巴首部记录片问世:看哭所有创业者!
    【LBS】基于地理位置的搜索之微信 附近的人 简单实现
    【Linux】Linux 常用命令汇总
    【心灵鸡汤】为什么我会去云平台讲课
    【Mysql数据库访问利器】phpMyadmin
    【Java】一台服务器配置多个Tomcat
    tp5, laravel, yii2我该选择哪个
    网站升级2.0回滚机制
  • 原文地址:https://www.cnblogs.com/ooo0/p/15666637.html
Copyright © 2011-2022 走看看