jmap输出

[tomcat@n01 ~]$ /opt/java/jdk1.8.0_101/bin/jmap -heap 11368
Attaching to process ID 11368, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 25.101-b13using thread-local object allocation.
Parallel GC with 2 thread(s)Heap Configuration:MinHeapFreeRatio         = 0MaxHeapFreeRatio         = 100MaxHeapSize              = 2684354560 (2560.0MB)NewSize                  = 1073741824 (1024.0MB)MaxNewSize               = 1073741824 (1024.0MB)OldSize                  = 1610612736 (1536.0MB)NewRatio                 = 2SurvivorRatio            = 8MetaspaceSize            = 21807104 (20.796875MB)CompressedClassSpaceSize = 1073741824 (1024.0MB)MaxMetaspaceSize         = 17592186044415 MBG1HeapRegionSize         = 0 (0.0MB)Heap Usage:
PS Young Generation
Eden Space:capacity = 852492288 (813.0MB)used     = 420427144 (400.95056915283203MB)free     = 432065144 (412.04943084716797MB)49.31741317993014% used
From Space:capacity = 113770496 (108.5MB)used     = 2299712 (2.19317626953125MB)free     = 111470784 (106.30682373046875MB)2.021360617079493% used
To Space:capacity = 107479040 (102.5MB)used     = 0 (0.0MB)free     = 107479040 (102.5MB)0.0% used
PS Old Generationcapacity = 1610612736 (1536.0MB)used     = 50883368 (48.526161193847656MB)free     = 1559729368 (1487.4738388061523MB)3.1592552860577903% used27595 interned Strings occupying 3138384 bytes.

MaxHeapFreeRatio: GC后如果发现空闲堆内存占到整个预估堆内存的N%(百分比),则收缩堆内存的预估最大值, 预估堆内存是堆大小动态调控的重要选项之一. 堆内存预估最大值一定小于或等于固定最大值(-Xmx指定的数值). 前者会根据使用情况动态调大或缩小, 以提高GC回收的效率MinHeapFreeRatio: GC后如果发现空闲堆内存占到整个预估堆内存的N%(百分比), 则放大堆内存的预估最大值MaxHeapSize: 即-Xmx, 堆内存大小的上限InitialHeapSize: 即-Xms, 堆内存大小的初始值NewSize: 新生代预估堆内存占用的默认值MaxNewSize: 新生代占整个堆内存的最大值OldSize: 老年代的默认大小, default size of the tenured generationNewRatio: 老年代对比新生代的空间大小, 比如2代表老年代空间是新生代的两倍大小. The ratio of old generation to young generation.SurvivorRatio: Eden/Survivor的值. 这个值的说明, 很多网上转载的都是错的. 8表示Survivor:Eden=1:8, 因为survivor区有2个, 所以Eden的占比为8/10. Ratio of eden/survivor space size. -XX:SurvivorRatio=6 sets the ratio between each survivor space and eden to be 1:6, each survivor space will be one eighth of the young generation. MetaspaceSize: 分配给类元数据空间的初始大小(Oracle逻辑存储上的初始高水位,the initial high-water-mark ). 此值为估计值. MetaspaceSize设置得过大会延长垃圾回收时间. 垃圾回收过后, 引起下一次垃圾回收的类元数据空间的大小可能会变大MaxMetaspaceSize: 是分配给类元数据空间的最大值, 超过此值就会触发Full GC. 此值仅受限于系统内存的大小, JVM会动态地改变此值CompressedClassSpaceSize: 类指针压缩空间大小, 默认为1GG1HeapRegionSize: G1区块的大小, 取值为1M至32M. 其取值是要根据最小Heap大小划分出2048个区块. With G1 the Java heap is subdivided into uniformly sized regions. This sets the size of the individual sub-divisions. The default value of this parameter is determined ergonomically based upon heap size. The minimum value is 1Mb and the maximum value is 32Mb. Sets the size of a G1 region. The value will be a power of two and can range from 1MB to 32MB. The goal is to have around 2048 regions based on the minimum Java heap size.

指针压缩1. 64位平台上默认打开
  1)使用-XX:+UseCompressedOops压缩对象指针
    "oops"指的是普通对象指针("ordinary" object pointers)。
    Java堆中对象指针会被压缩成32位。
    使用堆基地址(如果堆在低26G内存中的话,基地址为0)
  2)使用-XX:+UseCompressedClassPointers选项来压缩类指针
    对象中指向类元数据的指针会被压缩成32位
    类指针压缩空间会有一个基地址
2. 元空间和类指针压缩空间的区别
  1)类指针压缩空间只包含类的元数据,比如InstanceKlass, ArrayKlass
    仅当打开了UseCompressedClassPointers选项才生效
    为了提高性能,Java中的虚方法表也存放到这里
    这里到底存放哪些元数据的类型,目前仍在减少
  2)元空间包含类的其它比较大的元数据,比如方法,字节码,常量池等。

[tomcat@n01 ~]$ /opt/java/jdk1.8.0_101/bin/jstat -gcutil 11368   S0     S1     E      O      M     CCS       YGC   YGCT     FGC    FGCT     GCT   2.02   0.00  49.32   3.16  92.13  88.17     24    1.220     3    0.637    1.857

S0: Survivor 0区的空间使用率 Survivor space 0 utilization as a percentage of the space's current capacity.
S1: Survivor 1区的空间使用率 Survivor space 1 utilization as a percentage of the space's current capacity.
E: Eden区的空间使用率 Eden space utilization as a percentage of the space's current capacity.
O: 老年代的空间使用率 Old space utilization as a percentage of the space's current capacity.
M: 元数据的空间使用率 Metaspace utilization as a percentage of the space's current capacity.
CCS: 类指针压缩空间使用率 Compressed class space utilization as a percentage.
YGC: 新生代GC次数 Number of young generation GC events.
YGCT: 新生代GC总时长 Young generation garbage collection time.
FGC: Full GC次数 Number of full GC events.
FGCT: Full GC总时长 Full garbage collection time.
GCT: 总共的GC时长 Total garbage collection time.

记录GC日志

加入参数

-verbose:gc -Xloggc:$CATALINA_BASE/logs/gc.log XX:+PrintGCTimeStamps -XX:+PrintGCDetails

例如

export JAVA_HOME=/opt/java/jdk1.8.0_101
export CATALINA_HOME=/opt/tomcat/apache-tomcat-8.0.36-redis
export CATALINA_BASE=/home/tomcat/tomcat8_jdk8
export JAVA_OPTS="-server -Xms1280m -Xmx1280m -XX:MaxNewSize=896m -Djava.awt.hea
dless=true -verbose:gc -Xloggc:$CATALINA_BASE/logs/gc.log -XX:+PrintGCTimeStamps-XX:+PrintGCDetails"
cd $CATALINA_HOME/bin
./catalina.sh start

如果jvm进程不明原因退出, 可以查看syslog, 位置是 /var/log/messages

-XX:MaxTenuringThreshold     垃圾最大年龄, 如果设置为0的话,则年轻代对象不经过Survivor区,直接进入年老代. 对于年老代比较多的应用,可以提高效率.如果将此值设置为一个较大值,则年轻代对象会在Survivor区进行多次复制,这样可以增加对象再年轻代的存活 时间,增加在年轻代即被回收的概率. 该参数只有在串行GC时才有效.

Java8 jvm参数相关推荐

  1. Java8 JVM参数解读

    我们知道java虚拟机启动时会带有很多的启动参数,Java命令本身就是一个多参数的启动命令.那么具体JVM启动包含哪些参数呢?这篇文章针对java8的情况做一篇汇总解读,包含大多数常见和不常见的命令参 ...

  2. jvm 参数_6个提高性能的JVM参数

    截止到2020年五月,JVM中仅仅只是关于垃圾回收和内存相关的参数就已经超过600个.如果算上其他方面的参数,JVM相关的总参数能轻松超过1000个.参数太多了,弄得人很懵逼.在这边文章中,我们只选取 ...

  3. 深入详解JVM内存模型与JVM参数详细配置

    本系列会持续更新. JVM基本是BAT面试必考的内容,今天我们先从JVM内存模型开启详解整个JVM系列,希望看完整个系列后,可以轻松通过BAT关于JVM的考核. BAT必考JVM系列专题 1.JVM内 ...

  4. JVM参数这样配置会让你的程序更快更强

    Java代码的编译,大家都知道是将.java代码编译成.class文件,这个过程是我们常说的编译,也称为前端编译.实际上Java程序的编译和运行不仅仅是将代码编译成.class文件就可以的,因为机器无 ...

  5. JVM 参数及含义(适用于 JDK7及之前)

    文章目录 1.JVM参数的含义 1.1.JDK7版本的主要参数 1.2.JDK8版本的重要特有参数 2.并行收集器( ParallelGC )相关参数 3.CMS相关参数 4.辅助信息 5.常见配置汇 ...

  6. 每天100w次登陆请求, 8G 内存该如何设置JVM参数?

    上周知识星球的同学在阿里云技术面终面的时候被问到这么一个问题:假设一个每天100w次登陆请求的平台,一个服务节点 8G 内存,该如何设置JVM参数? 觉得回答的不太理想,过来找我复盘. 下面以面试题的 ...

  7. 浅谈Metaspace内存溢出原因及JVM参数设置

    浅谈Metaspace内存溢出原因及JVM参数设置 1.Metaspace内存溢出(oom) 日志 原因分析 从Java8开始,Java中的内存模型引入了一个称为元空间(Metaspace)的新内存区 ...

  8. 阿里终面:每天100w次登陆请求, 8G 内存该如何设置JVM参数?

    大家好,我是不才陈某~ 上周知识星球的同学在阿里云技术面终面的时候被问到这么一个问题:假设一个每天100w次登陆请求的平台,一个服务节点 8G 内存,该如何设置JVM参数? 觉得回答的不太理想,过来找 ...

  9. edas部署需要哪些参数_EDAS应用JVM参数配置生产实践-阿里云开发者社区

    整理了近期在项目上做的一些技术研究,希望与大家共同探讨交流. 如下参数建议是在长时间的生产环境运行中得出的参数配置建议.曾在多个大型项目中使用,单个项目中最大EDAS节点数量超过500个.虽然可以默认 ...

最新文章

  1. 《C++代码设计与重用》——2.5 浅拷贝和深拷贝
  2. 【黑马程序员 C++教程从0到1入门编程】【笔记6】C++核心编程(文件操作)
  3. RecyclerView高级控件-附实例【android专题】
  4. lombok @Builder 是如何实现的
  5. 重构碎片化知识_知识碎片化时代,如何妙用思维导图,提高你的学习效率(含福利)...
  6. JS中怎样比较两个 时分秒 格式的时间大小
  7. ~~朴素dijkstra算法
  8. D 语言是否可作为入门级的编程语言?
  9. matlab神经网络(二)-bp神经网络,MATLAB神经网络(2) BP神经网络的非线性系统建模——非线性函数拟合...
  10. mysql选择联合索引还是单索引?索引列应该使用哪一个最有效?深入測试探讨...
  11. linux进程控制(一)--unix环境高级编程读书笔记
  12. poster模板_高分北斗大赛报名进行中,ppt、poster展示模板推送
  13. OSChina 周六乱弹 ——致敬默默守护国运的男人们
  14. 微信还能这么玩?半透明的微信背景主题用起来!
  15. 【IoT】产品设计:包装盒型设计
  16. 抖音巨量千川投放受到口碑分影响?该怎么提高口碑分?
  17. POS机IC卡参数、公钥下载流程及POSP数据库设计
  18. PMI-ACP练习题(17)
  19. 南开1809计算机应用基础在线作业,【奥鹏】南开21春学期(1709、1803、1809、1903、1909、2003、2009、2103)《计算机应用基础》在线作业1...
  20. 【程序设计与算法(三)第7周测验(2019秋季)】005:山寨版istream_iterator

热门文章

  1. R 用回归来做 ANOVA
  2. [转载]世界各国语言文字举例
  3. html5 图灵完备,css图灵完备
  4. 惠普HP LaserJet Pro M405dn 打印机驱动
  5. 浙江咪咕MGV3200_KLH_国科GK6323_2+8_免拆机卡刷固件包
  6. 继续当搬运工之人人网移动端架构解析
  7. 在电脑端微信或低版本ios,使用微信自带浏览器打开网页不显示
  8. 【小麦苗课堂】高可用培训(RAC+DG+OGG)--包括11g、12c、18c、19c等版本
  9. 手机通过adb工具安装应用
  10. 神州租车还有这些新玩法?打造了行业新标杆