文章目录

  • 前言
  • 一、新生代和老年代比例
  • 二、jdk8默认垃圾收集器
  • 三、jvm 参数设置
  • 四、jvm 日志分析
  • 五、内存的使用情况分析
  • 1. jmap 查看
  • 2. 使用工具分析
  • 2.1 mat
  • 六、cpu 使用率过高分析
  • 七、记一次内存居高不下的原因
  • 总结



前言

提示:这里可以添加本文要记录的大概内容:
例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。


提示:以下是本篇文章正文内容,下面案例可供参考

一、新生代和老年代比例

堆大小 = 新生代 + 老年代。其中,堆的大小可以通过参数 –Xms、-Xmx 来指定。
默认的,新生代 ( Young ) 与老年代 ( Old ) 的比例的值为 1:2 ( 该值可以通过参数 –XX:NewRatio=2 来指定,就代表老年代和新生代的比例为2:1 ),即:新生代 ( Young ) = 1/3 的堆空间大小。
参考

二、jdk8默认垃圾收集器

jdk8 默认的垃圾收集器:

三、jvm 参数设置

四、jvm 日志分析

参考1参考2

五、内存的使用情况分析

1. jmap 查看

参考详细参看深入理解java虚拟机的第四章jmap命令
jhat 是JDK自带的用于分析JVM Heap Dump文件的工具
命令:jhat [dump文件名路径]
然后是用http://localhost:7000 即可

2. 使用工具分析

2.1 mat

如果文件名后缀是.dump,需要先改成.hprof,然后导入。
详细分析参考1详细分析参考2

六、cpu 使用率过高分析

参考1参考2参考推荐


七、记一次内存居高不下的原因

现象:

发现有一个线上服务,jvm启动时没有指定 xms,xmx,发现内存会一直飙升。然后维持在一个较高的位置居高不下。

服务部署在docker,用的8核16G。

jvm启动设置的最大内存为 13108M

java设置年轻代和老年代内存 jvm新生代老年代默认比例_jvm设置和日志


而目前查看jvm已经申请到了最大内存

java设置年轻代和老年代内存 jvm新生代老年代默认比例_老年代_02


之后内存居高不下,因为申请了最大堆内存后一直没有再还给操作系统。

参考:

总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。