侯体宗的博客
  • 首页
  • Hyperf版
  • beego仿版
  • 人生(杂谈)
  • 技术
  • 关于我
  • 更多分类
    • 文件下载
    • 文字修仙
    • 群聊
    • 九宫格抽奖
    • 拼图
    • 消消乐
    • 相册

【Java命令一】jmap

Java  /  管理员 发布于 2年前   418

jmap命令的用法:

 

[hadoop@hadoop sbin]$ jmapUsage:    jmap [option] <pid>        (to connect to running process)    jmap [option] <executable <core>        (to connect to a core file)    jmap [option] [server_id@]<remote server IP or hostname>        (to connect to remote debug server)where <option> is one of:    <none>               to print same info as Solaris pmap    -heap                to print java heap summary    -histo[:live]        to print histogram of java object heap; if the "live"                         suboption is specified, only count live objects    -permstat            to print permanent generation statistics    -finalizerinfo       to print information on objects awaiting finalization    -dump:<dump-options> to dump java heap in hprof binary format                         dump-options:                           live         dump only live objects; if not specified,                                        all objects in the heap are dumped.                           format=b     binary format                           file=<file>  dump heap to <file>                         Example: jmap -dump:live,format=b,file=heap.bin <pid>    -F                   force. Use with -dump:<dump-options> <pid> or -histo                         to force a heap dump or histogram when <pid> does not                         respond. The "live" suboption is not supported                         in this mode.    -h | -help           to print this help message    -J<flag>             to pass <flag> directly to the runtime system

 

jmap可以对本机或者远程机器正在运行的Java程序的内存使用情况进行分析

常用用法:

 

1.jmap pid

结果:这个结果显示,第二列是文件大小,第三列是具体的文件

 

 

0x00000000004000007K/home/hadoop/software/jdk1.7.0_67/bin/java0x00007ff9ac9ac000108K/usr/lib64/libresolv-2.17.so0x00007ff9acbc600026K/usr/lib64/libnss_dns-2.17.so0x00007ff9c819c000112K/home/hadoop/software/jdk1.7.0_67/jre/lib/amd64/libnet.so0x00007ff9c83b300089K/home/hadoop/software/jdk1.7.0_67/jre/lib/amd64/libnio.so0x00007ff9d2e31000120K/home/hadoop/software/jdk1.7.0_67/jre/lib/amd64/libzip.so0x00007ff9d304c00056K/usr/lib64/libnss_files-2.17.so0x00007ff9d3258000214K/home/hadoop/software/jdk1.7.0_67/jre/lib/amd64/libjava.so0x00007ff9d348300063K/home/hadoop/software/jdk1.7.0_67/jre/lib/amd64/libverify.so0x00007ff9d369100043K/usr/lib64/librt-2.17.so0x00007ff9d38990001114K/usr/lib64/libm-2.17.so0x00007ff9d3b9b00014853K/home/hadoop/software/jdk1.7.0_67/jre/lib/amd64/server/libjvm.so0x00007ff9d4a0f0002058K/usr/lib64/libc-2.17.so0x00007ff9d4dd000019K/usr/lib64/libdl-2.17.so0x00007ff9d4fd4000103K/home/hadoop/software/jdk1.7.0_67/lib/amd64/jli/libjli.so0x00007ff9d51eb000138K/usr/lib64/libpthread-2.17.so0x00007ff9d5407000156K/usr/lib64/ld-2.17.so

 

 

2.jmap -heap pid(堆内存使用详细情况)

 

 

[hadoop@hadoop sbin]$ jmap -heap 1819Attaching to process ID 1819, please wait...Debugger attached successfully.Server compiler detected.JVM version is 24.65-b04using thread-local object allocation.Parallel GC with 2 thread(s)Heap Configuration:   MinHeapFreeRatio = 0   MaxHeapFreeRatio = 100   MaxHeapSize      = 536870912 (512.0MB)   NewSize          = 1310720 (1.25MB)   MaxNewSize       = 17592186044415 MB   OldSize          = 5439488 (5.1875MB)   NewRatio         = 2   SurvivorRatio    = 8   PermSize         = 21757952 (20.75MB)   MaxPermSize      = 134217728 (128.0MB)   G1HeapRegionSize = 0 (0.0MB)Heap Usage:PS Young GenerationEden Space:   capacity = 135266304 (129.0MB)   used     = 31579760 (30.116806030273438MB)   free     = 103686544 (98.88319396972656MB)   23.346361263777858% usedFrom Space:   capacity = 22020096 (21.0MB)   used     = 17629120 (16.81243896484375MB)   free     = 4390976 (4.18756103515625MB)   80.05923316592262% usedTo Space:   capacity = 22020096 (21.0MB)   used     = 0 (0.0MB)   free     = 22020096 (21.0MB)   0.0% usedPS Old Generation   capacity = 358088704 (341.5MB)   used     = 8192 (0.0078125MB)   free     = 358080512 (341.4921875MB)   0.002287701317715959% usedPS Perm Generation   capacity = 24641536 (23.5MB)   used     = 24625520 (23.484725952148438MB)   free     = 16016 (0.0152740478515625MB)   99.93500405169547% used3509 interned Strings occupying 266432 byte

 

 

  • Heap Configuration:堆内存空间的分配参数,
  • Heap Usage:堆的各个空间的内存使用情况

3. 将内存使用情况dump到磁盘(可以运行时执行)

 

jmap -dump:file=heap.dump.bin.001 1819

 

[hadoop@hadoop sbin]$ jmap -dump:file=heap.dump.bin.001 1819Dumping heap to /home/hadoop/software/spark-1.2.0-bin-hadoop2.4/sbin/heap.dump.bin.001 ...Heap dump file created[hadoop@hadoop sbin]$ ls -lhtotal 108M-rw-------  1 hadoop hadoop  42M Feb 27 05:02 headop.bin-rw-------  1 hadoop hadoop  66M Feb 27 05:21 heap.dump.bin.001

速度非常快,dump的大小为66M,接下来的问题,如何分析这个dump文件

 

 

4. 使用jhat

 

[hadoop@hadoop sbin]$ jhatERROR: No arguments suppliedUsage:  jhat [-stack <bool>] [-refs <bool>] [-port <port>] [-baseline <file>] [-debug <int>] [-version] [-h|-help] <file>-J<flag>          Pass <flag> directly to the runtime system. For  example, -J-mx512m to use a maximum heap size of 512MB-stack false:     Turn off tracking object allocation call stack.-refs false:      Turn off tracking of references to objects-port <port>:     Set the port for the HTTP server.  Defaults to 7000-exclude <file>:  Specify a file that lists data members that should  be excluded from the reachableFrom query.-baseline <file>: Specify a baseline object dump.  Objects in  both heap dumps with the same ID and same class will  be marked as not being "new".-debug <int>:     Set debug level.    0:  No debug output    1:  Debug hprof file parsing    2:  Debug hprof file parsing, no server-version          Report version number-h|-help          Print this help and exit<file>            The file to readFor a dump file that contains multiple heap dumps,you may specify which dump in the fileby appending "#<number>" to the file name, i.e. "foo.hprof#3".All boolean options default to "true"[hadoop@hadoop sbin]$ jhat heap.dump.bin.001  //分析heap文件Reading from heap.dump.bin.001...Dump file created Fri Feb 27 05:21:39 EST 2015Snapshot read, resolving...Resolving 633856 objects...Chasing references, expect 126 dots..............................................................................................................................Eliminating duplicate references..............................................................................................................................Snapshot resolved.Started HTTP server on port 7000Server is ready.

 可以通过7000端口打开http server进行查看每个对象占用的空间

 

 

5.显示永久代的统计信息

jmap -permstat pid

 

 

[hadoop@hadoop sbin]$ jmap -permstat 1819Attaching to process ID 1819, please wait...Debugger attached successfully.Server compiler detected.JVM version is 24.65-b04finding class loader instances ..done.computing per loader stat ..done.please wait.. computing liveness.liveness analysis may be inaccurate ...class_loader     classes    bytesparent_loaderalive?type<bootstrap>       11216558096  null  live<internal>0x00000000fd818900130480x00000000fd662860deadsun/reflect/DelegatingClassLoader@0x00000000d7fcfc000x00000000fd92afc0000x00000000fd662860deadjava/util/ResourceBundle$RBClassLoader@0x00000000d8614b600x00000000fd81894013048  null  deadsun/reflect/DelegatingClassLoader@0x00000000d7fcfc000x00000000fd6628b000  null  deadsun/misc/Launcher$ExtClassLoader@0x00000000d8135e680x00000000fd818980130480x00000000fd662860deadsun/reflect/DelegatingClassLoader@0x00000000d7fcfc000x00000000fd6628603051196949680x00000000fd6628b0deadsun/misc/Launcher$AppClassLoader@0x00000000d81935f00x00000000fd8189c011888  null  deadsun/reflect/DelegatingClassLoader@0x00000000d7fcfc000x00000000fd8188c0130480x00000000fd662860deadsun/reflect/DelegatingClassLoader@0x00000000d7fcfc00total = 9417726267144    N/A    alive=1, dead=8    N/A    

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


  • 上一条:
    ThinkPHP通过AJAX返回JSON的两种实现方法
    下一条:
    【Java命令二】jhat
  • 昵称:

    邮箱:

    0条评论 (评论内容有缓存机制,请悉知!)
    最新最热
    • 分类目录
    • 人生(杂谈)
    • 技术
    • linux
    • Java
    • php
    • 框架(架构)
    • 前端
    • TP(3/5)
    • 数据库
    • 微信(小程序)
    • Laravel
    • Redis
    • Docker
    • Go
    • swoole
    • Windows
    • Python
    • 苹果(mac/ios)
    • 相关文章
    • java 正则表达式基础,实例学习资料收集大全 原创(0个评论)
    • java正则表达式彻底研究(0个评论)
    • java正则表达式验证函数(0个评论)
    • MVC、MVP和MVVM分别是什么(0个评论)
    • java 单例模式(饿汉模式与懒汉模式)(0个评论)
    • 近期文章
    • php语言中检测及转换文件字符编码函数介绍(0个评论)
    • laravel中轻量化的钱包实现方案:Laravel Wallet(0个评论)
    • mysql性能优化之8种常见SQL错误用法(0个评论)
    • Laravel 9.13版本发布(0个评论)
    • beego+GeoLite2免费数据库获取ip地址经纬度等定位归属信息(0个评论)
    • redis安全配置之修改端口、添加密码流程步骤及启动使用(0个评论)
    • PHP + Memcache实现简单的统计当前在线人数功能(0个评论)
    • Thinkphp5.1框架中实现Session+Redis会话共享流程步骤(0个评论)
    • go语言中使用Signbit()函数判断一个整数是正数或负数(0个评论)
    • 删库跑路之一链家程序员删除公司9TB数据被判7年,望各大码农警之!(0个评论)
    • 近期评论
    • 阿凡达123 在

      golang 怎么做热更新中评论 也可以看看这个:https://github.com/edwingeng/hot..
    • 博主 在

      hyperf框架常用命令-在centos7中退出命令及在docker容器中退出命令中评论 @路过的靓仔:cdn静态资源被墙,已修复..
    • GGGGGGGGG 在

      layui框架常用输入框介绍中评论 写的很好解决问题..
    • 路过的靓仔 在

      hyperf框架常用命令-在centos7中退出命令及在docker容器中退出命令中评论 剩下好多 wait 状态的..
    • 激光豆芽 在

      为什么你不能安逸?国内996为什么没有国外955香?中评论 国内现在无意义的内卷太多了..
    • 2016-11
    • 2018-03
    • 2020-03
    Top

    Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号 PHP交流群

    侯体宗的博客