JVM调优常用命令

问题描述

简单记录一下JVM调优常用的一些命令。

一、JVM的结构

首先需要简单了解一下JVM的结构。
JVM(Java Virtual Machine)由多个组件组成,其中两个关键组件是堆和栈。

栈(Stack)是线程和方法执行的地方,主要耗费CPU资源
堆(Heap)堆存储着Java程序创建的对象,垃圾回收主要针对堆内存进行操作

二、常用的JVM调优命令

jps(JVM Process Status Tool)

列出正在运行的Java进程,显示Java进程的进程PID和主类名称

jps
jstat(JVM Statistics Monitoring Tool)

监视虚拟机各种运行状态信息,包括类加载、垃圾回收、内存使用等。例子如下

jstat -gc <pid> <interval> <count>

以一定的时间间隔和次数显示指定 Java 进程的垃圾回收统计信息。例如

jstat -gc 23456 1000 5

表示每 1000 毫秒(1 秒)显示一次进程 ID 为 23456 的 Java 进程的垃圾回收统计信息,共显示 5 次。

jinfo((Configuration Info for Java))

输出当前 jvm 进程的全部参数和系统属性,例子如下

jinfo 34567

可以显示进程PID为34567的Java进程的相关信息

jmap(Memory Map for Java)

生成Java进程的内存转存储文件(dump文件),或者查看堆内存的详细信息。
①生产dump文件例子如下

jmap -dump:format=b,file=dump.hprof 23456

生成进程 ID 为 23456 的名称为dump.hprof的堆转储文件。

②jmap还可以查看堆内存的详细信息,例子如下

jmap -heap <pid>

查看指定 Java 进程的堆内存使用情况,包括堆的大小、使用情况、垃圾回收器等信息。

jhat(JVM Heap Analysis)

分析堆转储文件(heapdump文件),
首先要通过jmap命令生成出堆转储文件。

jmap -dump:format=b,file=dump.hprof 23456

然后使用jhat命令分析

jhat dump.hprof

其中 “dump.hprof” 是堆转储文件的名称。jhat会解析该文件,并启动一个 HTTP 服务器,默认端口为 7000。查看分析结果:在浏览器中输入http://localhost:7000/,即可访问jhat提供的分析界面。可以查看堆中的对象、实例数量、引用关系等信息。

jstack(Stack Trace for Java)

生成虚拟机当前时刻的线程快照,用于分析线程的状态和死锁等问题。

jstack <pid>

生成指定 Java 进程的线程堆栈信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值