JVM 性能监控与故障处理工具

JDK 中包含一些命令行工具,这些工具能在处理应用程序性能问题、定位故障时发挥很大的作用。

jps

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

jps 可以列出正在运行的 JVM 进程,显示 JVM 执行主类及进程的本地虚拟机唯一 ID(与操作系统进程 ID 一致)。

常用选项:

  • -q:只输出进程 ID,隐藏主类名称
  • -m:输出进程启动时传递给主类 main() 函数的参数
  • -l:输出主类全名,如进程执行的是 Jar 包,输出 Jar 路径
  • -v:输出虚拟机进程启动时 JVM 参数

jstat

JVM Statistics Monitoring Tool,用于收集 HotSpot 各方面的运行数据。

可以显示 JVM 进程中的类装载、内存、垃圾收集、JIT 编译等运行数据,格式为

jstat option vmid [interval] [count]

interval 参数为查询间隔,count 参数为查询次数,省略这两个参数则只查询一次。

主要选项:

  • -class:监视类装载、卸载数量、总空间及耗时
  • -gc:监视 Java 堆状态,包括各个区的容量、已用空间、GC 时间合计等信息
  • -gccapacity:与 -gc 类似,更关注堆内各区使用到的最大、最小空间
  • -gcutil:与 -gc 类似,更关注已使用空间占比
  • -gccause:与 -gcutil 类似,额外输出上一次 GC 原因
  • -gcnew:监视新生代 GC 状况
  • -gcnewcapacity:与 -gcnew 类似,更关注使用到的最大、最小空间
  • -gcold:监视老年代 GC 状况
  • -gcoldcapacity:与 -gcold 类似,更关注使用到的最大、最小空间

jinfo

Configuration Info for Java,用于显示虚拟机配置信息,可以实时查看和调整虚拟机各项参数。

jps -v 命令可以查看 JVM 启动时显示指定的参数列表,各项参数的默认值可以通过 jinfo 的 -flag 选项进行查询,还可以通过 -sysprops 选项打印出进程 System.getProperties() 的内容。

jmap

Memory Map for Java,用于生成 JVM 内存转储快照(heapdump文件)。命令格式 jmap [option] vmid ,主要选项:

  • -dump:生成 Java 堆转储快照
  • -head:显示 Java 堆详细信息
  • -histo:显示堆中对象的统计信息

jhat

JVM Heap Dump Browser,用于分析 heapdump 文件,建立 HTTP / HTML 服务器,可以在浏览器上查看分析结果。

实际工作中一般不使用jhat 来分析 dump 文件,因为通常不会再服务器上直接分析 dump 文件,耗时且消耗资源,功能也相对简陋。

jstack

Stack Trace for Java,用于生成虚拟机线程快照,目的是定位线程出现长时间停顿的原因。常见参数:

  • -F:当正常输出的请求不被响应时,强制输出线程堆栈
  • -l:除堆栈外,显示关于锁的附加信息
  • -m:如调用本地方法,可以显示 C / C++ 的堆栈

JConsole

Java Monitoring and Management Console,基于 JMX 的可视化 Java 监视与管理控制台。

Visual VM

All-in-One Java Troubleshooting Tool,功能强大的运行监视和故障处理程序。不需要被监视程序基于特殊 Agent 运行,对程序的实际性能影响很小。

查看原文

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,122评论 6 505
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,070评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,491评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,636评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,676评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,541评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,292评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,211评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,655评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,846评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,965评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,684评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,295评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,894评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,012评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,126评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,914评论 2 355

推荐阅读更多精彩内容