GC

  • -XX:+PrintGC   打印GC日志
  • -XX:+PrintGCDetails   打印详细的GC日志
  • -Xloggc:/var/gc.log   将GC日志打印在根目录的var文件夹下的gc.log文件中

class

  • -verbose:class   打印类加载和卸载信息

堆内存

  • -Xmx2048m   最大堆内存
  • -Xms2048m   最小堆内存
  • -Xmn512m   新生代内存
  • -XX:SurvivorRatio   值为eden/from=eden/to
  • -XX:+HeapDumpOnOutOfMemoryError   在内存溢出时导出整个堆信息
  • -XX:HeapDumpPath=/var/heap.dump   指定导出堆的存放路径

方法区

  • -XX:PermSize=50m  方法区大小
  • -XX:MaxPermSize=50m   方法区最大大小

Metaspace

  • -XX:MaxMetaspaceSize  指定元空间的大小,默认情况下,只受限于系统内存大小

  • -Xss1m

直接内存

  • -XX:MaxDirectMemorySize   最大可用直接内存,默认最大值为-Xmx,直接内存使用量达到该值时,触发垃圾回收

垃圾回收器

  • -XX:UseSerialGC   使用serial/serial old垃圾回收器
  • -XX:PrintGCApplicationStoppedTime:查看STW时间
  • -XX:UseParNewGC   使用parNew/serial old
  • -XX:ParallelGCThreads   parNew的GC线程数

Parallel

  • -XX:+UseParallelGC   使用Parallel Scavenge/serial Old  //TODO
  • -XX:+UseParallelOldGC   使用Parallel Scavenge/Parallel Old
  • -XX:GCTimeRatio:直接设置吞吐量大小,假设设为19,则允许的最大GC时间占总时间的1/(1+19),默认值为99,即1/(1+99)
  • -XX:MaxGCPauseMillis:最大GC停顿时间,该参数并非越小越好
  • -XX:+UseAdaptiveSizePolicy:开启该参数,-Xmn/-XX:SurvivorRatio/-XX:PretenureSizeThreshold这些参数就不起作用了,虚拟机会自动收集监控信息,动态调整这些参数以提供最合适的的停顿时间或者最大的吞吐量(GC自适应调节策略),而我们需要设置的就是-Xmx,-XX:+UseParallelOldGC或-XX:GCTimeRatio两个参数就好(当然-Xms也指定上与-Xmx相同就好)

CMS

  • -XX:+UseConcMarkSweepGC   使用parNew/CMS
  • -XX:CMSInitiatingOccupancyFraction   指定当年老代空间满了多少后进行垃圾回收。默认68,即68%
  • -XX:+UseCMSCompactAtFullCollection   (默认是开启的)在CMS收集器顶不住要进行FullGC时开启内存碎片整理过程,该过程需要STW
  • -XX:CMSFullGCsBeforeCompaction   指定多少次FullGC后才进行整理
  • -XX:ParallelCMSThreads   指定CMS回收线程的数量,默认为:(CPU数量+3)/4
  • -XX:+CMSPermGenSweepingEnabled与-XX:+CMSClassUnloadingEnabled   使用CMS进行方法区的回收

G1

  • -XX:+UseG1GC   使用G1

对象进入年老代

  • -XX:MaxTenuringThreshold=15   复制过15次后
  • -XX:PretenureSizeThreshold=1000   大于1000字节的对象直接进入年老代

JIT

  • -XX:CounterHalfLifeTime   半衰周期
  • -XX:CompileThreshold   默认server模式是10000,即在半衰周期内方法调用次数达到10000次,将该方法编译为机器码
  • -XX:-UseCounterDecay   关闭上述机制,即半衰周期的无穷大
  • -XX:OnStackReplacePercent   用于计算循环体执行的次数,server模式下通过该值算出来的回边数是10700,即循环体执行10700次时便以为机器码

第十章 常用的JVM参数记录的更多相关文章

  1. [转]17个常用的JVM参数

    作者:SimpleSmile_5177 来源:https://www.cnblogs.com/Simple-Object/p/10272326.html 前言 大家都知道,jvm在启动的时候,会执行默 ...

  2. Tcpdump 常用命令、参数记录

    一.介绍 一个关于Centos  Tcpdump 的个人工作总结. 二.参数介绍: 1. -i:   指定要进行抓包的网卡 2.-s0 :表示每个报文的大小是接收到的指定大小,如果没有这个选项,则超过 ...

  3. JVM 参数设置

    YGC FGC 都会影响程序的运行,中断程序,JVM参数调整比较复杂,现在记录了一下平时常用的JVM参数: jar 包启动: usr/java/bin/java -jar -Xms2560m -Xmx ...

  4. 常用的JVM调优参数总结汇总【随时查阅学习】

    本文章参数根据后期用的参数会持续更新  --- (1)-Xms20M 表示设置JVM启动内存的最小值为20M,必须以M为单位 (2)-Xmx20M 表示设置JVM启动内存的最大值为20M,必须以M为单 ...

  5. 常用的JVM配置参数

    一.Trace 跟踪参数 在Eclipse中,如何打开GC的监控日志 选择菜单栏Run -> Run Configurations -> Java Application -> 选择 ...

  6. 【java虚拟机】常用的jvm配置参数

    转自:https://www.cnblogs.com/pony1223/p/8661219.html 零.在IDE的后台打印GC日志: 既然学习JVM,阅读GC日志是处理Java虚拟机内存问题的基础技 ...

  7. JVM参数汇总

    一.java启动参数共分为三类: 其一是标准参数(-),所有的JVM实现都必须实现这些参数的功能,而且向后兼容:其二是非标准参数(-X),默认jvm实现这些参数的功能,但是并不保证所有jvm实现都满足 ...

  8. 修改jmeter jvm参数

    记录下常用的linux下 jmeter jvm参数修改,打开jmeter安装目录/bin/jmeter(非jmeter.sh) 1. 修改默认堆内存大小 #默认的 HEAP="-Xms512 ...

  9. 明白生产环境中的jvm参数

    明白生产环境中的jvm参数 写代码的时候,程序写完了,发到线上去运行,跑一段时间后,程序变慢了,cpu负载高了--一堆问题出来了,所以了解一下生产环境的机器上的jvm配置是有必要的.比如说: JDK版 ...

随机推荐

  1. JS脚本获取开发者后台所有Device

    ``` var ids = ["Device ID"]; var names = ["Device Name"]; $("td[aria-descri ...

  2. bzoj 4004 向量拟阵

    题解RT. eps = 1e-10 WrongAnswer eps = 1e-5 Accepted /************************************************* ...

  3. STL中优先队列的使用

    普通的队列是一种先进先出的数据结构,元素在队列尾追加,而从队列头删除.在优先队列中,元素被赋予优先级.当访问元素时,具有最高优先级的元素最先删除.优先队列具有最高级先出的行为特征.我们来说一下C++的 ...

  4. pat advanced 1139. First Contact (30)

    题目链接 解法暴力 因为有 0000, -0000 这样的数据,所以用字符串处理 同性的时候,遍历好朋友时会直接遍历到对方,这个时候应该continue #include<cstdio> ...

  5. TVS二极管和稳压二极管的区别

    TVS二极管和稳压二极管的区别 TVS管超过它的耐压值后,会瞬间导通短路,反应速度在ns级, 而稳压管是稳压作用的,超过它的稳压值,只要功率不超过它的耐受值,就会稳定在它的稳压值范围内. TVS是瞬态 ...

  6. Implementation of Serial Wire JTAG flash programming in ARM Cortex M3 Processors

    Implementation of Serial Wire JTAG flash programming in ARM Cortex M3 Processors The goal of the pro ...

  7. GO语言基础之method

    方法 method 1. Go 中虽没有 class,但依旧有 method 2. 通过显示说明 receiver 来实现与某个类型的组合 3. 只能为同一个包中的类型定义方法 4. Receiver ...

  8. leetcode 题解 || Valid Parentheses 问题

    problem: Given a string containing just the characters '(', ')', '{', '}', '[' and ']', determine if ...

  9. AngularJS双向绑定,手动实施观察

    实现这样的一个需求:页面中某个地方显示某个文本框的值经过计算得到的结果,而且是文本框值每次变化显示的计算结果也跟着动态变化. 在controller中可以声明一个对象,它的一个字段用来存储初始值: $ ...

  10. LeetCode——Convert Sorted List to Binary Search Tree

    Given a singly linked list where elements are sorted in ascending order, convert it to a height bala ...