首页 > 其他分享 >jstat&jamp命令使用

jstat&jamp命令使用

时间:2024-07-22 15:18:17浏览次数:9  
标签:jamp 快照 dump java pid jstack 命令 线程 jstat

进制在线转换工具:https://www.uutils.com/enc/num_hex_convert.htm#google_vignette

1 jstack
jstack简介:jstack是用于生成java虚拟机当前时刻的线程快照。线程快照是当前iava虚拟机内存每一条线程正在执行的方法堆栈的集合,
生成线程快照的主要目的是定位线程出现长时间停顿的原因。

命令所在路径:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.232.b09-0.el7_7.x86_64/bin/jstack

jstack 用法
jstack [ option ] pid

jstack [ option ] executable core

jstack [ option ] [server-id@]remote-hostname-or-IP

jstack [option] <pid> >jstack.log // 打印进程的堆栈信息 到jstack.log 中

(1)executable:Java executable from which the core dump was produced.(可能是产生core dump的java可执行程序)
(2)core 将被打印信息的core dump文件
(3)remote-hostname-or-IP 远程debug服务的主机名或ip
(4)server-id 唯一id,假如一台主机上多个远程debug服务

选项    作用
-F        当正常输出的请求不被响应时,强制输出线程堆栈。
-m        如果调用到本地方法的话,可以显示C/C++的堆。
-l        除堆栈外,显示关于锁的附加信息,在发生死锁时可以用jstack -l pid来观察锁持有情况。


jstack实战操作
1.1 通过 top 命令查看各个进程的cpu使用情况,它默认是按cpu使用率由高到低排序的。
1.2 top -Hp pid:查看该进程下,各个线程的cpu使用情况。
1.3 jstack pid:通过top命令定位到cpu占用率较高的线程之后,接着使用jstack pid命令来查看当前java进程的堆栈状态。
1.4 jstack -l PID >/apps/svr/sdp-servers/log/dump.log:输出堆栈信息到文件中
1.5 把占用cpu资源较高的线程pid,将该pid转成16进制的值。


2 jmap
jmap简介:jmap(Java Virtual Machine Memory Map)是JDK提供的一个可以生成Java虚拟机的堆转储快照dump文件的命令行工具。

命令所在路径:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.232.b09-0.el7_7.x86_64/bin/jmap


生成Java虚拟机的堆转储快照dump文件:

生成dump文件命令参数:-dump:[live,]format=b,file=/具体目录/dump.hprof,具体说明如下:

live参数是可选的,如果指定,则只转储堆中的活动对象;如果没有指定,则转储堆中的所有对象。
format=b表示以 hprof 二进制格式转储Java堆的内存。
file=<filename>用于指定快照dump文件的文件名。

/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.232.b09-0.el7_7.x86_64/bin/jmap -dump:format=b,file=/apps/svr/amp/dump0915.hprof 20366

jamp详解:https://blog.csdn.net/phzy20131004/article/details/120455688

标签:jamp,快照,dump,java,pid,jstack,命令,线程,jstat
From: https://www.cnblogs.com/huangdh/p/18316070

相关文章

  • aix基本命令
    lslvlsvglsblkdu-g20210119213721|awk'{sum+=$1};END{printsum}'du-sg*|sort-nr|headhistorywithtimestampfc-tstartsrc-ssshdstopsrc-ssshdlssrc-ssshdchfs-asize=+256M/noteschfs-asize=+256M/optAIX常用的性能监控命令(转)原创......
  • Linux常用命令
    命令格式:命令字[选项][参数]pwd   查看当前工作目录cd切换工作目录                cd/etc/:从当前目录切换到跟目录下的etc下        cd-:切换到上次切换的目录(切换前的目录),常用于两个文件夹之间相互切换            ......
  • 路由追踪以及常用命令tracert\pathping
    一、常用的命令:对于网络工程师来说,需要熟练掌握的Windows路由追踪命令有两个:tracert和pathping,其中pathping是tracert和ping命令的结合,不但可以追踪目标IP地址的路由,还可以测试经过的每一跳的时延和丢包率。1.1tracert命令及举例tracert命令,通过向目标IP地址发送不同T......
  • 【windows】防火墙命令
    #关闭防火墙netshfirewallsetopmodemode=disable#放行远程8888端口进来的流量netshadvfirewallfirewalladdrulename="88"protocol=TCPdir=inremoteport=8888action=allow#放行出去到远程8888端口的流量netshadvfirewallfirewalladdrulename="88"protoc......
  • 一些linux命令行方法
    复制部分文件要在Linux中复制整个文件夹但排除WAV和FIG文件,你可以使用rsync命令并结合多个--exclude参数来实现。以下是一个示例命令:rsync-av--exclude='*.wav'--exclude='*.fig'source_folder/destination_folder/-a:表示以归档模式复制文件夹,保留所有文件属性......
  • git 常用命令
    gitk      //查看基线gitstatus     //查看当前版本状态gitbranch  //查看本地所有分支gitbranch-a       //查看所有分支gitbranch-r      //查看远程所有分支gitcommit -m"xx需求"      //......
  • 如何从命令行设置日志记录级别
    我使用argparse从命令行获取日志记录级别,然后将其作为logging.basicConfig的输入传递。然而,我试图实现这一点的方式不起作用。有什么建议吗?期望的行为,来自命令行:pythonmain.py-log=DEBUG期望的输出DEBUG:__main__:Debugisworking代码importloggingimp......
  • (82)DC命令--->(01)DC综合命令
    1目录(a)IC简介(b)数字IC设计流程(c)Verilog简介(d)DC综合命令(e)结束1IC简介(a)在IC设计中,设计师使用电路设计工具(如EDA软件)来设计和模拟各种电路,例如逻辑电路、模拟电路、数字信号处理电路等。然后,根据设计电路的规格要求,进行布局设计和布线,确定各个电路元件的位置和连线方式。......
  • shell命令-2
    三、Linux系统的基本命令(查询命令)3.1man手册man[选项]命令名选项:-a:在所有的man帮助手册中搜索;-f:等价于whatis指令,显示给定关键字的简短描述信息;例:manls:查看ls使用手册3.2按文件名称查询find[查找的路径][选项][参数]选项:-name:按名称查找......
  • Linux基础命令指南三(重定向,管道,Vim)
    目录重定向1.输出重定向2.输入重定向 管道 tee命令Vim的使用重定向在Linux系统中进程使用文件描述符来获取输入与输出,默认有标准输入(键盘),标准输出(终端),标准错误输出(终端),描述符分别为0,1,21.输出重定向顾名思义就是更改进程输入的方式,例如将本来输出到终端的信息输......