主题
面试速答(先看这里)
**一句话结论:**jstat位于java的bin目录下,主要利用JVM内建的指令对Java应用程序的资源和性能进行实时的命令行的监控,包括了对Heap size和垃圾回收状况的监控。
60秒标准回答:
jstat(JVM Statistics Monitoring Tool)是用于监控虚拟机各种运行状态信息的命令行工具。他可以显示本地或远程虚拟机进程中的类装载、内存、垃圾收集、JIT编译等运行数据,在没有GUI图形的服务器上,它是运行期定位虚拟机性能问题的首选工具
jstat位于java的bin目录下,主要利用JVM内建的指令对Java应用程序的资源和性能进行实时的命令行的监控,包括了对Heap size和垃圾回收状况的监控。可见,Jstat是轻量级的、专门针对JVM的工具,非常适用
jstat 命令格式
**答题顺序:**结论 → 原理/机制 → 关键流程 → 场景与取舍 → 易错点
回答主线:
- **要点1:**jstat(JVM Statistics Monitoring Tool)是用于监控虚拟机各种运行状态信息的命令行工具。
- **要点2:**option — 选项,我们一般使用 -gcutil 查看gc情况
- **要点3:**vmid — VM的进程号,即当前运行的java进程号
- **要点4:**interval– 间隔时间,单位为秒或者毫秒
- **要点5:**count — 打印次数,如果缺省则打印无数次
**记忆锚点:**jstat → pid → JVM → old → interval → gcutil
关键取舍:
- 他可以显示本地或远程虚拟机进程中的类装载、内存、垃圾收集、JIT编译等运行数据,在没有GUI图形的服务器上,它是运行期定位虚拟机性能问题的首选工具。
- jstat位于java的bin目录下,主要利用JVM内建的指令对Java应用程序的资源和性能进行实时的命令行的监控,包括了对Heap size和垃圾回收状况的监控。
加分表达:
- jstat 命令格式: option — 选项,我们一般使用 -gcutil 查看gc情况 vmid — VM的进程号,即当前运行的java进程号 interval– 间隔时间,单位为秒或者毫秒 count — 打印次数,如果缺省则打印无数次 参数interval和count代表查询间隔和次数,如果省略这两个参数,说明只查询一次。
追问准备:
- 围绕「jstat」:底层原理是什么?使用时有哪些边界和常见坑?
- 围绕「pid」:底层原理是什么?使用时有哪些边界和常见坑?
- 围绕「JVM」:底层原理是什么?使用时有哪些边界和常见坑?
- 如果线上出现异常,你会如何定位、验证并规避?
典型回答
jstat(JVM Statistics Monitoring Tool)是用于监控虚拟机各种运行状态信息的命令行工具。他可以显示本地或远程虚拟机进程中的类装载、内存、垃圾收集、JIT编译等运行数据,在没有GUI图形的服务器上,它是运行期定位虚拟机性能问题的首选工具。
jstat位于java的bin目录下,主要利用JVM内建的指令对Java应用程序的资源和性能进行实时的命令行的监控,包括了对Heap size和垃圾回收状况的监控。可见,Jstat是轻量级的、专门针对JVM的工具,非常适用。
jstat 命令格式:
c
jstat -<option> [-t] [-h<lines>] <vmid> [<interval> [<count>]]> option — 选项,我们一般使用 -gcutil 查看gc情况 > > vmid — VM的进程号,即当前运行的java进程号 > > interval– 间隔时间,单位为秒或者毫秒 > > count — 打印次数,如果缺省则打印无数次
扩展知识
使用
参数interval和count代表查询间隔和次数,如果省略这两个参数,说明只查询一次。假设需要每250毫秒查询一次进程5828垃圾收集状况,一共查询5次,那命令行如下:
c
jstat -gc 5828 250 5