JVM常用虚拟机命令汇总



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 时打印出堆栈详情。

原文地址:https://www.cnblogs.com/wuqinglong/p/11237213.html

时间: 2024-08-07 17:04:34

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

常用Git命令汇总

常用Git命令汇总 跟着R哥来到了新公司(一个从硬件向互联网转型中的公司),新公司以前的代码基本是使用SVN做版本控制,甚至有些代码没有做版本控制,所以R哥叫HG做了一次Git分享,准备把公司所有的代码用Git作版本控制.平时自己虽然天天使用Git,但是总感觉知识有些零散,于是汇总了一些常用的Git命令. 常用配置 --system #系统级别 --global #用户全局 --local #单独一个项目 git config --global user.name "xxxx" #用户

Vertica数据库常用管理命令汇总

1.查询数据库是否有等待 select * from resource_queues where node_name=(select node_name from nodes order by node_name limit 1) order by queue_entry_timestamp desc; 2.查当前数据库执行的sql(包含在队列里等待的) select substr(current_statement, 1, 200), count(1) from sessions where

Windows常用CMD命令汇总

有时在windows下经常找不到相应的管理工具位置,尤其在win10中,记得有一次win10更新了下,竟然找不到控制面板了,尴尬.现在再也不用找来找去了.持续更新ing cpl:全称:Control PaneL extension,控制面板扩展程序 msc: 全称:MicoSoft management Console,微软管理控制台 exe:全称:executable,可执行程序 vbs:全称,Visual Basic script,微软发布的一种可执行程序 常用命令汇总 设置管理  comm

Nginx日志常用分析命令汇总

一.概念 并发连接数 客户端向服务器发起请求,并建立了TCP连接.每秒钟服务器链接的总TCP数量,就是并发连接数. 请求数 请求数指的是客户端在建立完连接后,向http服务发出GET/POST/HEAD数据包. 拓展:服务器返回了请求结果后有两种情况: http数据包头包含Close字样,关闭本次TCP连接: http数据包头包含Keep-Alive字样,本次连接不关闭,可继续通过该连接继续向http服务发 送请求,用于减少TCP并发连接数. PV(page view) 访问量,即页面浏览量或者

linux必备常用重要命令汇总

linux的man帮助文件很强大,因此很多人都认为没有必要记住linux命令.我觉得这是一个误区,基本的常用命令是一定要记住的,就像你相亲一定要能叫出对方的名字一样重要.记住他们有两个好处:第一提高自己的效率,第二思路清晰.那么我到底需要记住那些linux的命令及它的常用选项呢?虽然这是一个仁者见仁问题.我个人认为计算机就是为了完成任务,那么linux中什么任务最常操作,完成它的命令就越是常用的了.下面按照这个道理总结一下红帽系列linux常用命令:1. 文件目录管理命令25:touch.mkd

linux常用的命令汇总

sudo   -管理员可以让普通用户拥有root权限 ls功能说明:列出目录内容举 例:列出/var目录的文件和目录的信息 :ls -l /var:最常用方式 ls –ltr cd功能说明:切换目录举 例:切换到根目录 :cd / 返回上一级目录: cd .. 返回上两级目录: cd ../.. 进入个人的主目录: cd ~ mkdir功能说明:创建目录举 例:创建test目录:mkdir test2 rmdir 功能说明:删除一个空目录 举 例:删除test目录,rmdir test.rmdi

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

新版本的 MegaCli-1.01.24-0.i386.rpm (下载地址:http://www.lsi.com/downloads/Public/MegaRAID Common Files/8.02.16_MegaCLI.zip )该包会把程序安装在/opt下,当然也可以自定义安装目录,例如:rpm --relocate /opt/=/usr/sbin/ -i MegaCli-1.01.24-0.i386.rpm (即把安装目录 /opt 替换成 /usr/sbin). (linux文件夹下有

linux常用系统配置命令汇总

系统配置及查看信息相关命令 # uname -a # 查看内核/操作系统/CPU信息# head -n 1 /etc/issue # 查看操作系统版本# cat /proc/cpuinfo # 查看CPU信息# hostname # 查看计算机名# lspci -tv # 列出所有PCI设备# lsusb -tv # 列出所有USB设备# lsmod # 列出加载的内核模块# env # 查看环境变量 资源# free -m # 查看内存使用量和交换区使用量# df -h # 查看各分区使用情况

路由器终端常用linux命令汇总(持续更新)

ls:显示文件名与相关属性 ls -al;ls -l;ls -a 第一列: d:表示目录,dir. -:表示文件. l:表示链接文件,linkfile. 接下来的字符三个为一组,且均为rwx这3个字母的组合.r:read,w:write,x:execute. 第一组,文件所有者的权限: 第二组,同用户组的权限: 第三组,其它非本用户组的权限. 第二列: 连接数,表示多少文件名连接到此节点. 第三列: 文件或目录的所有者账号. 第四列: 文件所属用户组. 第五列: 文件的大小,单位默认为B,(字节