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 时打印出堆栈详情。
JVM常用虚拟机命令汇总的更多相关文章
- 常用Git命令汇总
常用Git命令汇总 跟着R哥来到了新公司(一个从硬件向互联网转型中的公司),新公司以前的代码基本是使用SVN做版本控制,甚至有些代码没有做版本控制,所以R哥叫HG做了一次Git分享,准备把公司所有的代 ...
- 常用 Git 命令汇总
Git 命令汇总 1 Git 的一些通用术语 1.1 Git 的几个区 1.2 如何标识 Git 的某次提交 2 Git 配置 2.1 配置 2.2 读取配置 2.3 与 Beyond Compare ...
- Linux系统中常用的命令汇总
日常开发,上线的服务器系统一般都是Linux系统,所以,熟练的掌握常用的命令操作就尤其的重要了 1) 查看某个服务的运行情况 (例如Redis) ps -ef | grep redis //e-显示程 ...
- jvm常用排错命令
jvm命令很多,有一篇博客整理的非常全 https://www.cnblogs.com/ityouknow/p/5714703.html.我只列举一些常用的排错用到的. jps -l -v ...
- Nginx日志常用分析命令汇总 (转)
三.常用日志分析命令 1.总请求数 1 wc -l access.log |awk '{print $1}' 2.独立IP数 1 awk '{print $1}' access.log|sort |u ...
- 常用LINUX命令汇总
一.基本命令bash Bash(GNU Bourne-Again Shell)是许多Linux平台的内定Shellpwd 查看当前所在目录ls 查看目录内所有文件cd 进入目录cd .. 返回上一层p ...
- 常用FTP命令汇总
FTP是File Transport Protocol的简称,其作用是使连接到服务器上的客户可以在服务器和客户机间传输文件.除WWW服务外,FTP也算是使用最广泛的一种服务了.在cmd中ftp命令很多 ...
- DELL磁盘阵列控制卡(RAID卡)MegaCli常用管理命令汇总
新版本的 MegaCli-1.01.24-0.i386.rpm (下载地址:http://www.lsi.com/downloads/Public/MegaRAID Common Files/8.02 ...
- linux常用系统配置命令汇总
系统配置及查看信息相关命令 # uname -a # 查看内核/操作系统/CPU信息# head -n 1 /etc/issue # 查看操作系统版本# cat /proc/cpuinfo # 查看C ...
随机推荐
- 第四周课程总结&实验报告
实验报告 1.写一个名为Rectangle的类表示矩形. 其属性包括宽width.高height和颜色color,width和height都是double型的,而color则是String类型的.要求 ...
- python3笔记二十三:正则表达式之其他函数
一:学习内容 re.split函数 re.finditer函数 re.sub函数 group()分组 re.compile函数 二:字符串切割---re.split函数 需要导入包:import re ...
- 2018092609-2 选题 Scrum立会报告+燃尽图 04
此作业要求参见:https://edu.cnblogs.com/campus/nenu/2019fall/homework/8682 一.小组情况组长:贺敬文组员:彭思雨 王志文 位军营 杨萍队名:胜 ...
- python第一个程序:计算体脂率
主要是为了提醒自己要——保重 height = input('请输入身高(m):') weight = input('请输入体重(KG):') age = input('请输入年龄:') sex = ...
- nodejs之express框架商品管理系统登录功能
1.该系统主要使用express.body-parser.express-session.ejs.mongodb-connect . npm install express --save npm in ...
- flutter ListView列表和导航传值以及回调
main.dart import 'package:flutter/material.dart'; void main(){ return runApp(MyApp()); } class Produ ...
- 阶段3 1.Mybatis_12.Mybatis注解开发_8 mybatis注解开发使用二级缓存
执行两次都查询userId为57的数据.测试一级缓存 返回true 新建测试类 ,测试二级缓存 二级缓存的配置 首先是全局配置,不配置其实也是可以的.默认就是开启的.这里为了演示配置上 dao类里面进 ...
- 51N皇后
题目:n 皇后问题研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击.给定一个整数 n,返回所有不同的 n 皇后问题的解决方案.每一种解法包含一个明确的 n 皇后问题的 ...
- 原生dapper中新增用户后根据用户id,在用户角色表中添加关联数据,事务处理
var result = 0; var userId = 0; using (var db = _Sql.Connection) using (var tran =db.BeginTransactio ...
- 之前写的页面导出Excel表格
废话不多说,直接上代码 <%@ page language="java" import="java.util.*" pageEncoding=" ...