JVM配置常用命令有哪些

news/2025/10/18 16:02:40/文章来源:https://www.cnblogs.com/sunnycc/p/19149843

JVM常用命令有哪些

jps

查看java进程


The jps command lists the instrumented Java HotSpot VMs on the target system. The command is limited to reporting information on JVMs for which it has the access permissions.

jinfo

(1)实时查看和调整JVM配置参数


The jinfo command prints Java configuration information for a specified Java process or core file or a remote debug server. The configuration information includes Java system properties and Java Virtual Machine (JVM) command-line flags.

(2)查看用法

jinfo -flag name PID 查看某个java进程的name属性的值


jinfo -flag MaxHeapSize PID
jinfo -flag UseG1GC PID

(3)修改

参数只有被标记为manageable的flags可以被实时修改


jinfo -flag [+|-] PID
jinfo -flag <name>=<value> PID

(4)查看曾经赋过值的一些参数


jinfo -flags PID

jstat

(1)查看虚拟机性能统计信息


The jstat command displays performance statistics for an instrumented Java HotSpot VM. The target JVM is identified by its virtual machine identifier, or vmid option.

(2)查看类装载信息


jstat -class PID 1000 10   查看某个java进程的类装载信息,每1000毫秒输出一次,共输出10次

(3)查看垃圾收集信息


jstat -gc PID 1000 10

jstack

(1)查看线程堆栈信息


The jstack command prints Java stack traces of Java threads for a specified Java process, core file, or remote debug server.

(2)用法


jstack PID

(4)排查死锁案例

  • DeadLockDemo

//运行主类
public class DeadLockDemo
{
   public static void main(String[] args)
  {
       DeadLock d1=new DeadLock(true);
       DeadLock d2=new DeadLock(false);
       Thread t1=new Thread(d1);
       Thread t2=new Thread(d2);
       t1.start();
       t2.start();
  }
}
//定义锁对象
class MyLock{
   public static Object obj1=new Object();
   public static Object obj2=new Object();
}
//死锁代码
class DeadLock implements Runnable{
   private boolean flag;
   DeadLock(boolean flag){
       this.flag=flag;
  }
   public void run() {
       if(flag) {
           while(true) {
               synchronized(MyLock.obj1) {
                   System.out.println(Thread.currentThread().getName()+"----if获得obj1锁");
                   synchronized(MyLock.obj2) {
                       System.out.println(Thread.currentThread().getName()+"----if获得obj2锁");
                  }
              }
          }
      }
       else {
           while(true){
               synchronized(MyLock.obj2) {
                   System.out.println(Thread.currentThread().getName()+"----否则获得obj2锁");
                   synchronized(MyLock.obj1) {
                       System.out.println(Thread.currentThread().getName()+"----否则获得obj1锁");

                  }
              }
          }
      }
  }
}
  • 运行结果

  • jstack分析

把打印信息拉到最后可以发现

jmap

(1)生成堆转储快照


The jmap command prints shared object memory maps or heap memory details of a specified process, core file, or remote debug server.

(2)打印出堆内存相关信息


jmap -heap PID

jinfo -flag UsePSAdaptiveSurvivorSizePolicy 35352
-XX:SurvivorRatio=8

(3)dump出堆内存相关信息


jmap -dump:format=b,file=heap.hprof PID

(4)要是在发生堆内存溢出的时候,能自动dump出该文件就好了

一般在开发中,JVM参数可以加上下面两句,这样内存溢出时,会自动dump出该文件

-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=heap.hprof

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/939649.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

冬日绘版校徽上角色征集

快来投出你心仪的一票冬日绘版校徽上角色征集 征集角色,因为一些显而易见的原因,不接受梗图和真人图。 不需要考虑角色和校徽的适配度,最后会进行一些选择和修改。 如果目前没有你喜欢的角色,可以评论让我加入并投…

2025 年储罐厂家最新推荐榜,技术实力与市场口碑深度解析衬四氟/硫酸/盐酸储罐厂家推荐

引言储罐作为工业生产的核心存储设备,其性能直接关系到化工、环保、医药等领域的生产安全与运营效率。当前市场中,既有深耕多年的老牌企业,也涌现出一批技术创新型新势力,产品在防腐工艺、定制能力、环保适配性等方…

Remainder game

https://www.luogu.com.cn/problem/CF687B 由exCRT知道,最终其实就是要求k是否|lcm(a),但是直接求lcm会溢出,方法:1、质因数分解,比较次数,2、取模lcm=lcm/gcd(lcm,c)*c)%=k; // 读入+lcm 计算(注意先除后乘)+…

ResNet网络

ResNet网络 一.手写ResNet网络 (1)对于残差块有两种: 1.有1*1卷积层 Y=Y+conv_1x1(X) 2.无1*1卷积层 Y=Y+X(2)整体ResNet架构import torch from d2l import torch as d2l from torch import nn from torch.nn imp…

复旦附中英语期中考卷错题分析

错题共13道 1.不知道dream to do是口语化用法,所以选了此选项 2.不知道expectation后面加不同介词的用法,expectation of+具体期望的内容,expectation for+对某人的期望 3.现在完成进行时语法没完全学完 4.状语从句…

expectation后面的固定搭配

1. expectation of Expectation of用于强调对某事物或某结果的预期,通常后接具体期望的内容,如名词或动名词。例如:There is a high expectation of success in this project. 这句话表达了对项目成功的高期望。 2.…

079_尚硅谷_双分支基本使用

079_尚硅谷_双分支基本使用1.双分支的基本语法 2.双分支的基本语法案例

【转】[C#] .net core 项目的目标框架设置

【转】[C#] .net core 项目的目标框架设置转自:https://learn.microsoft.com/zh-cn/dotnet/standard/frameworks 点图中 目标框架 旁边的问号,在微软官网看到了这个枚举:支持的目标框架目标框架通常被简称为 TFM。 …

nextcloud安装部署与升级

记一次nextcloud安装部署与升级的详细步骤。nextcloud 安装部署升级Nextcloud 是一款开源的私有云存储与协作平台,它不仅可以在本地或私有服务器上搭建,还能提供文件同步、共享、WebDAV、在线协作、日历、通讯录甚至…

2025 年切纸机厂家最新推荐榜,技术实力与市场口碑深度解析双蜗轮/程控/液压/大型切纸机厂家推荐

引言在印刷、包装等行业高速发展的当下,切纸机作为核心生产设备,其性能直接决定生产效率与产品品质。当前国内切纸机市场规模已达 26.03 亿元,企业数量近 50 家,但市场格局呈现 “新旧并存、优劣混杂” 的特点。部…

2025 年不锈钢板厂家最新推荐排行榜:聚焦头部企业竞争优势与选购要点解析

在当前不锈钢市场中,厂商数量繁杂且实力差距显著,采购者常面临产品质量不稳定、技术难以满足高端需求、交货延迟、服务不完善等问题,尤其在新能源、高端制造、海洋工程等领域,对不锈钢材料的要求更为严苛,选择可靠…

14 抽象类的介绍

14 抽象类的介绍抽象类 定义 用abstract修饰的类 public abstract class Milo{//约束public abstract void help();#让别人帮忙实现#只有方法名,没有方法实现#里面也可以有正常类拥有的普通方法#但抽象方法必须在抽象类…

2025 年台球桌厂家最新推荐榜,技术实力与市场口碑深度解析

引言随着台球运动在国内的普及,台球桌市场呈现爆发式增长,大小品牌鱼龙混杂,给消费者与采购方带来严峻的选择难题。部分品牌为压缩成本,采用劣质石板、低质台呢及未处理框架,导致台面易变形、击球轨迹偏移、设备寿…

详细介绍:ET2B08-0F65-EBD7多路电子切换开关芯片SOP-8单按键开关控制芯片

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

在运维工作中,在k8s集群使用命令查看etcd集群状态

在 Kubernetes (k8s) 集群中,etcd 是集群的核心键值存储,用于保存所有集群数据(如 Pod、Node、Service 状态等)。要检查 etcd 集群的健康状态,通常需要直接访问运行 etcd 的控制平面节点,因为 etcd 一般不对外暴…

还在发愁怎么配置VSCode?一篇文章教会你!

适合 OIer 的 VSCode 配置方法注:或许该文章更加适合算法竞赛选手,本文章推荐的配置方法比较偏向于算法竞赛选手风格。并且,Win7 及以下的用户请跳过,因为这不适用于 Win7 及以下版本。 由于算法竞赛常用语言为 c+…

鸿蒙设备开发-环境搭建

正在施工 说明 从gitee上直接搜索harmony即可,里面有快速入门的资料。 doc仓库里面。搭建的话,肯定是全量的标准系统。一个是IDE入门,一个是命令行入门,肯定是命令行入门了。 环境搭建 我用的服务器是 40核80线程 …

git使用手册

一、git常用命令 1、初始化配置 初始化本地仓库:git init 克隆远程仓库到本地:git clone <仓库URL> 设置全局用户名:git config --global user.name "your name" 设置全局邮箱:git config --globa…

常见的动态规划模型的初始化总结

一直都搞不太明白动态规划的初始化,所以开个博客总结一下。背包模型 设 \(f_{i, j}\) 为:以前 \(i\) 个物品,———— 求方案数 二维体积至多为 \(j\):\(f_{0,i}=1,0 \le i \le m\),其余为 \(0\)。 体积恰好为 \(…

GCD Tables

https://www.luogu.com.cn/problem/CF582A 这道题的核心做法是从大到小来算; 因为gcd(a,b)<=min(a,b),所以最大的数一定是序列中的数,现在看第二大的数:也必须是序列中的,第三大的:如果我们把两个 gcd(x,k) 都…