zoukankan      html  css  js  c++  java
  • 【Java】线程转储分析 ThreadDump

    [[TOC]]

    通过分析 ThreadDump 来查询Java程序运行情况

    获取线程转储文件

    有多种方式可以获取转储文件,可参考链接HOW TO TAKE THREAD DUMPS? – 8 OPTIONS

    下面介绍 jps+jstack的方式获取 ThreadDumps

    步骤1:查看当前虚拟机所有进程

    jps -l 
    
    

    output如下:

    46832 com.chinamobile.epic.MgmtApplication
    16900 org.jetbrains.idea.maven.server.RemoteMavenServer
    38980 sun.tools.jps.Jps
    43828 org.jetbrains.jps.cmdline.Launcher
    9544 
    

    其中 ++46832 com.chinamobile.epic.MgmtApplication++ 为将要分析的程序程序;

    步骤2:使用jstack获取转储文件

    指令:

    jstack -l  <pid> > <file-path>
    

    example: 得到转储文件 threaddump-46832.txt

    jstack -l 46832 > threaddump-46832.txt
    

    在k8s中获取srv的 threaddump

    1. 获取服务名

    kubectl get pod | grep mgmt
    
    output:
    epic-mgmt-254096307-np82s                    1/1       Running            0          46m
    

    2. 进入服务

    kubectl exec -it epic-mgmt-254096307-np82s /bin/sh
    

    3. jps -l 获取进程ID

    # jps -l
    1 /epic-mgmt.jar     # pid=1
    1036 sun.tools.jps.Jps
    

    4.获取 Threaddump

    // 导出到 Threaddump010.txt
    jstack -l 1 > /var/lib/docs/mgmt/epic-mgmt-threaddump010.txt
    

    之所以导出到那个目录,因为 如下配置文件:(完成k8s的目录到 linux目录的映射)

    ...省略...
     containers:
          - image: 10.254.9.21/library/epic-mgmt:0.1.16
            name: epic-mgmt
            volumeMounts:
            - mountPath: "/var/lib/docs"
              name: epic-docs
            - mountPath: "/var/log/epic"
              name: epic-logs
            ports:
            - containerPort: 8028
              name: mgmt
          volumes:
          - name: epic-docs
            hostPath:
              path: "/opt/data/docs"
          - name: epic-logs
            hostPath:
              path: "/opt/data/logs"
    ...省略...
    

    分析 ThreadDump

    使用在线工具:
    http://fastthread.io

    分析结果示例:





  • 相关阅读:
    函数之装饰器
    前端笔记之css
    前端笔记之html
    python之函数
    python之文件操作
    python基础知识
    ovirt一种基于kvm的开源虚拟化软件
    python2与3的区别
    TP框架设置验证码
    js原生子级元素阻止父级元素冒泡事件
  • 原文地址:https://www.cnblogs.com/ssslinppp/p/7485650.html
Copyright © 2011-2022 走看看