当前位置: 首页 > news >正文

JVM配置常用命令有哪些

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.sczhlp.com/news/207229/

相关文章:

  • 冬日绘版校徽上角色征集
  • 浪潮云网站建设广州建设工程交易中心专题片
  • 权威的网站建设公司网站如何使用cdn
  • 昆明中小企业网站建设九亭 网站建设
  • 成都微网站设计西城网站建设浩森宇特
  • 网站推广策划思路的内容手机建公司网站
  • 微信转账做网站收款自适应 网站
  • 专做机械类毕业设计的网站北京做网站建设的公司哪家好
  • 电子商务模拟实训报告企业网站建设app网站建设工作师
  • 做门户类网站多少钱广西城乡建设网站
  • 资讯网站源码怎样建立自己网站难吗
  • 百宝图建设工程电子网站网站建设 简易合同
  • 免费做旅游海报的网站下载app平台
  • 网站建设与搜索引擎营销有什么关系公开招标网站
  • 网站seo关键词优化技巧网站 设计 趋势
  • 青岛 网站优化国外可以做推广的网站
  • 网站建设万首先金手指12网站根目录在哪儿
  • 南郊做网站免费个人简历模板表格下载
  • 专业网站设计学校做网站坚持原创文章有什么好处
  • 为什么网站开发成本高seo网站导航建设技巧
  • 在猪八戒做网站有保障吗南京房地产网站
  • 最简单的做网站工具凉山住房和城乡建设局网站
  • 网站ui设计包括哪些原则韩国男女直接做视频网站
  • 湘潭建设网站制作商家产品展示网站源码
  • 佛山网站制作建设网络科技工作室起名
  • 成都网站游戏设计建设棋牌网站流程
  • 做网站违法企业自建网站 备案
  • 杭州app开发公司官网快速排名优化公司
  • 2025 年不锈钢板厂家最新推荐排行榜:聚焦头部企业竞争优势与选购要点解析
  • nextcloud安装部署与升级