码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • JVM调试命令与调试工具


    目录

    一、JDK自带命令

    1、jps

    2、jstat(FullGC频繁解决方案)

    3、jmap

    4、jhat

    5、jstack(cpu占用高解决方案)

    6、jinfo

    二、JDK的可视化工具JConsole

    1、JConsole

    2、VisualVM


    一、JDK自带命令

      Sun JDK监控和故障处理命令如:

    1、jps

      JVM Process Status Tool,显示指定系统内所有的HotSpot虚拟机进程。

    jsp命令格式:

    1. jps [ options ] [ hostid ]
    2. 扩展参数:jps -l;jps -mlv;

    各参数说明如下:

    2、jstat(FullGC频繁解决方案)

      JVM statistics Monitoring,用于监视虚拟机运行时状态信息的命令,它可以显示出虚拟机进程中的类装载、内存、垃圾收集、JIT编译等运行数据。

    jstat命令格式:

    1. jstat [ option vmid [interval[s|ms] [count]] ]
    2. jstat -gc pid 1000 10
    3. 查看当前pid使用jvm堆栈空间的内存使用情况,每1000豪秒,共打印10次
    4. jstat -gcutil pid 1000 10 内存百分比

    3、jmap

      JVM Memory Map,用于生成heap dump文件。

    jmap命令格式:

    1. jmap [ option ] vmid

    4、jhat

      JVM Heap Analysis Tool,与jmap搭配使用,用来分析jmap生成的dump,该命令解析 Java 堆转储文件并启动 Web 服务器,生成dump的分析结果后,可以在浏览器中查看。

     使用案例:

    1. 导出dump信息到a.bin文件

    2. 启动jhat进行分析文件

    5、jstack(cpu占用高解决方案)

     用于生成虚拟机当前时刻的线程快照(一般称为threaddump或者javacore文件)。线程快照就是当前虚拟机内每一条线程正在执行的方法堆栈集合,生成线程快照的目的通常是定位线程出现长时间停顿的原因,如线程间死锁、死循环、请求外部资源导致的长时间挂起等,都是导致线程长时间停顿的常见原因。

    jstack命令格式:

    1. jstack [ option ] pid

    6、jinfo

      JVM Configuration info,用于实时查看和调整虚拟机运行参数。

    jinfo命令格式:

    主要介绍-flag参数,如果想查看一个已经运行的java程序的虚拟机参数值

    1. jinfo [ option ] pid
    2. $ jinfo -flag MaxMetaspaceSize 962
    3. -XX:MaxMetaspaceSize=18446744073709547520

    二、JDK的可视化工具JConsole

    1、JConsole

    JConsole(Java Monitoring and Management Console)是一种基JMX(Java Management Extensions,即Java管理扩展)的可视化监视、管理工具。

      通过JDK/bin目录下的“jconsole.exe”启动JConsole后,将自动搜索出本机运行的所有虚拟机进程。

    2、VisualVM

    VisualVM是更常用的可视化监控工具,它本身还具有插件扩展功能,因此功能非常强大,目前使用非常多。

    需要先说明的是一些安装上的问题,虽然安装好jdk之后是会有一个VisualVM的程序在jdk的bin目录下,但是不建议使用jdk提供的这个,建议直接去官网下载最新的版本使用。

    下载:

    VisualVM: Download

    插件下载:

    VisualVM: Plugins Centers

  • 相关阅读:
    flutter无法在windows平台上拖拽文件到它的窗口中
    iOS小技能:RSA签名、验签、加密、解密的原理
    组合数3 - lucas a、b较大的组合数
    如何配置React-Router?
    spring常考知识点总结
    windows协议详解之-RPC/SMB/LDAP/LSA/SAM域控协议关系
    【传输层】概述、复用分用、UDP详解、UDP校验
    SpringBoot之Web原生组件注入
    python获取抖音号发布数据
    【计算思维】蓝桥杯STEMA 科技素养考试真题及解析 5
  • 原文地址:https://blog.csdn.net/leesinbad/article/details/128638892
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号