title: JVM常用虚拟机命令汇总
comments: false
date: 2019-07-22 11:45:33
description: 总结一下常用的JVM虚拟机启动命令。
categories: GC


概述

本文主要说明一些 JVM 启动命令的作用以及使用方法。

在 Java 程序启动时,我们可以通过加入参数来让虚拟机打印一些虚拟机参数。

  • -XX:+PrintFlagsInitial:打印虚拟机的初始化参数(也就是XXX的默认值)
  • -XX:+PrintFlagsFinal:打印虚拟机的参数最终生效的的值
  • -XX:+PrintCommandLineFlags:打印命令行中加入的参数

如果对某个参数有兴趣的话,直接百度一下这个参数,大部分都讲的不错。

垃圾收集器相关

下面参数都是在 server 模式下运行测试的。

  • 使用 ParNew + CMS 收集器:-XX:+UseParNewGC -XX:+UseMarkSweepGC
  • 使用 Serial + Serial Old 收集器:-XX:+UseSerialGC
  • 使用 Parallel Scavenge + Parallel Old 收集器:-XX:+UseParallelGC -XX:+UseParallelOldGC
  • 使用 Serial + CMS 收集器:ERROR!!!
  • 使用 G1 收集器:-XX:+UseG1GC

通用参数

  • -XX:PretenureSizeThreshold=0:对象的大小如果大于这个值的话,会直接在老年代中分配。如果是0的话,表示所有对象都在Eden去分配。

ParNew 收集器相关

  • -XX:ParallelGCThreads:限制垃圾收集的线程数。

Parallel Scavenge 收集器相关

  • -XX:MaxGCPauseMillis:控制最大垃圾收集停顿时间。
  • -XX:GCTimeRatio:直接设置吞吐量大小。

CMS 收集器相关

  • -XX:+UseCMSCompactAtFullCollection:使用并发收集器时,开启对老年代的压缩,默认是 true。
  • -XX:CMSFullGCsBeforeCompaction=0:在开启对老年代压缩的情况下,设置多少次 Full GC 后,对老年代进行压缩。
  • -XX:CMSInitiatingOccupancyFraction=90:用来设置 CMS 垃圾收集器的触发百分比,太高容易造成 “Concurrent Mode Failure” 异常,太低的话,会有频繁的老年代 GC 出现。

内存参数相关

  • -Xms1g:设置虚拟机的初始内存,默认是物理内存的 1/64。
  • -Xmx1g:设置虚拟机的最大可用内存,默认是物理内存的 1/4。
  • -Xmn512m:设置新生代的大小。
  • -XX:MetaspaceSize=128m:默认是21m,调整 MetaSpace 的大小。
  • -Xss1m:设置每个线程堆栈的大小,虚拟机的最小值限制为 160k,如果小于这个值,则会报错:The stack size specified is too small, Specify at least 160k
  • -XX:NewRatio=2:设置新生代和老年代的比值,默认是2,即如果堆是300兆,则年轻代占100兆。
  • -XX:SurvivorRatio=8:设置新生代中 Eden 区与 Survivor 区的比值,默认为8,即 Eden 占 8 份,S1 占 1 份,S2 占 1 份。如果新生代时10兆,则 Eden 区占 8 兆,其余两个各占 1 兆。
  • -XX:MetaspaceSize=100m 设置元空间大小,默认是21兆左右,
  • -XX:+UseAdpptiveSizePoliy:使并行收集器自动选择年轻代和老年代的大小,以及 Survivor 区的比例,我的环境中默认是false。

GC日志相关

  • -XX:+PrintGC:打印简单的 GC 日志。
  • -XX:+PrintGCDetails:打印详细的 GC 日志。
  • -XX:+PrintGCTimeStamps :打印自虚拟机启动以来所经过的时间。
  • -XX:+PrintGCApplicationConcurrentTime :打印每次垃圾回收前,程序未中断的执行时间。
  • -XX:+PrintGCApplicationStoppedTime:打印垃圾回收期间程序暂停的时间。
  • -XX:+PrintHeapAtGC:在发生 GC 时打印出堆栈详情。

JVM常用虚拟机命令汇总的更多相关文章

  1. 常用Git命令汇总

    常用Git命令汇总 跟着R哥来到了新公司(一个从硬件向互联网转型中的公司),新公司以前的代码基本是使用SVN做版本控制,甚至有些代码没有做版本控制,所以R哥叫HG做了一次Git分享,准备把公司所有的代 ...

  2. 常用 Git 命令汇总

    Git 命令汇总 1 Git 的一些通用术语 1.1 Git 的几个区 1.2 如何标识 Git 的某次提交 2 Git 配置 2.1 配置 2.2 读取配置 2.3 与 Beyond Compare ...

  3. Linux系统中常用的命令汇总

    日常开发,上线的服务器系统一般都是Linux系统,所以,熟练的掌握常用的命令操作就尤其的重要了 1) 查看某个服务的运行情况 (例如Redis) ps -ef | grep redis //e-显示程 ...

  4. jvm常用排错命令

    jvm命令很多,有一篇博客整理的非常全 https://www.cnblogs.com/ityouknow/p/5714703.html.我只列举一些常用的排错用到的. jps   -l   -v  ...

  5. Nginx日志常用分析命令汇总 (转)

    三.常用日志分析命令 1.总请求数 1 wc -l access.log |awk '{print $1}' 2.独立IP数 1 awk '{print $1}' access.log|sort |u ...

  6. 常用LINUX命令汇总

    一.基本命令bash Bash(GNU Bourne-Again Shell)是许多Linux平台的内定Shellpwd 查看当前所在目录ls 查看目录内所有文件cd 进入目录cd .. 返回上一层p ...

  7. 常用FTP命令汇总

    FTP是File Transport Protocol的简称,其作用是使连接到服务器上的客户可以在服务器和客户机间传输文件.除WWW服务外,FTP也算是使用最广泛的一种服务了.在cmd中ftp命令很多 ...

  8. DELL磁盘阵列控制卡(RAID卡)MegaCli常用管理命令汇总

    新版本的 MegaCli-1.01.24-0.i386.rpm (下载地址:http://www.lsi.com/downloads/Public/MegaRAID Common Files/8.02 ...

  9. linux常用系统配置命令汇总

    系统配置及查看信息相关命令 # uname -a # 查看内核/操作系统/CPU信息# head -n 1 /etc/issue # 查看操作系统版本# cat /proc/cpuinfo # 查看C ...

随机推荐

  1. Java并发编程的艺术笔记(四)——ThreadLocal的使用

    ThreadLocal,即线程变量,是一个以ThreadLocal对象为键.任意对象为值的存储结构.这个结构被附带在线程上,也就是说一个线程可以根据一个ThreadLocal对象查询到绑定在这个线程上 ...

  2. WebSocket 结合 Nginx 实现域名及 WSS 协议访问-Nginx配置

    特别提示:本人博客部分有参考网络其他博客,但均是本人亲手编写过并验证通过.如发现博客有错误,请及时提出以免误导其他人,谢谢!欢迎转载,但记得标明文章出处:http://www.cnblogs.com/ ...

  3. python3笔记三:运算符与表达式

    一:学习内容 算术运算符:+(加).-(减).*(乘)./(除).%(取模).**(求幂).//(取整) 赋值运算符:= 复合运算符:+=.-=.*=./=.%=.**=.//= 位运算符:& ...

  4. Eclipse中文插件安装教程

    先运行英文版Eclipse 点击Help选择Install New Software 直接点击Add按钮 Name输入: Babel Location输入: http://download.eclip ...

  5. Java——利用反射机制将表单数据自动填充到JavaBean中

    以一个案例介绍反射机制的一种常见的使用场景,以及具体实现. 1.本文案例 在编写Java Web应用程序时,使用表单提交数据是一个必不可少的环节,后台对于前台使用表单提交的数据需要能够从请求中解析,并 ...

  6. java 方法的重载重写

    面向对象有三大特性:封装,继承,多态 多态则需要满足三大条件1要有继承2要有重写3父类引用子类对象 很多人对方法的重载重写有很大疑问,下面我来介绍一下方法的重载重写 方法重载就是方法名称重复,加载参数 ...

  7. Typography 字体

    Typography 字体 我们对字体进行统一规范,力求在各个操作系统下都有最佳展示效果. ¶中文字体 和畅惠风 PingFang SC 和畅惠风 Hiragino Sans GB 和畅惠风 Micr ...

  8. js开发问题

    error: npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! sha3@1.2.0 install: `node-gyp rebuild` npm ...

  9. 四十:数据库之SQLAlchemy实现排序的三种方式

    SQLAlchemy实现排序有三种方式一:order_by:查询的时候使用此方式根据某个字段或模型下的属性进行排序二:模型定义的时候,指定排序方式三:一对多的时候,relationship的order ...

  10. java:Spring框架2(bean的作用域,静态工厂和实例工厂,自动装配,动态代理)

    1.bean的作用域,静态工厂和实例工厂: bean.xml: <?xml version="1.0" encoding="UTF-8"?> < ...