背负青天而莫之夭阏者,而后乃今将图南。
百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 互联网 > 面试题 > 正文

java面试之JVM篇第五问--谈谈对 OOM 的认识?如何排查 OOM 问题?

swdejp 2023-09-11 218 浏览 0 评论

除了程序计数器,其他内存区域都有 OOM 的风险。

  • 栈一般经常会发生 StackOverflowError,比如 32 位的 windows 系统单进程限制 2G 内存,无限创建线程就会发生栈的 OOM
  • Java 8 常量池移到堆中,溢出会出 java.lang.OutOfMemoryError: Java heap space,设置最大元空间大小参数无效;
  • 堆内存溢出,报错同上,这种比较好理解,GC 之后无法在堆中申请内存创建对象就会报错;
  • 方法区 OOM,经常会遇到的是动态生成大量的类、jsp 等;
  • 直接内存 OOM,涉及到 -XX:MaxDirectMemorySize 参数和 Unsafe 对象对内存的申请。

排查 OOM 的方法:

  • 增加两个参数 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp/heapdump.hprof,当 OOM 发生时自动 dump 堆内存信息到指定目录;
  • 同时 jstat 查看监控 JVM 的内存和 GC 情况,先观察问题大概出在什么区域;
  • 使用 MAT 工具载入到 dump 文件,分析大对象的占用情况,比如 HashMap 做缓存未清理,时间长了就会内存溢出,可以把改为弱引用 。

相关推荐

Vue 前端面试题
Vue 前端面试题

前端开发前言前几天整理了一些html+css+JavaScript常见的面试题(https://segmentfault.com/u/youdang...

7个月前 (10-21) swdejp

58 道 Vue 常见面试题集锦,涵盖入门到精通,自测 Vue 掌握程度

1.vue优点?答:轻量级框架:只关注视图层,是一个构建数据的视图集合,大小只有几十kb;简单易学:国人开发,中文文档,不存在语言障碍,易于理解和学习;双向数据绑定:保留了angular的特...

Web前端工程师面试之Vue问题汇总解析
Web前端工程师面试之Vue问题汇总解析

又是一年毕业季,很多学习前端的同学面对激烈的求职竞争倍感压力,想要了解企业招聘会提问哪些问题。今天千锋郑州Web前端培训小编就给大家分享一下高级Web前端工程师...

7个月前 (10-21) swdejp

60个Vue常见问题汇总及解决方案

Q1:安装超时(installtimeout)方案有这么些:cnpm : 国内对npm的镜像版本/*cnpm website: https:/...

前端面试题《Vue》

1.vue优点?轻量级框架:只关注视图层,是一个构建数据的视图集合,大小只有几十kb;简单易学:国人开发,中文文档,不存在语言障碍,易于理解和学习;双向数据绑定:保留了angular的特点,...

吊打面试官系列-58道vue面试题

1.vue优点?2.vue父组件向子组件传递数据?3.子组件像父组件传递事件?4.v-show和v-if指令的共同点和不同点?5.如何让CSS只在当前组件中起作用?6.的作用是什么?7.如何获...

前端来自真实大厂的532道面试题

前言面试题是来自微博@牛客网发布的真实大厂前端面经题目,我一直在收集题目长期一个一个的记录下来的,可能会有重复,但基本前端的面试大纲和需要掌握的知识都在其中了,面试题仅做学习参考,学习者阅后也要用心钻...

60个前端框架Vue常见问题汇总及解决方案

  Q1:安装超时(installtimeout)  方案有这么些:  cnpm:国内对npm的镜像版本  /*  cnpmwebsite:https://npm.taobao.org/  ...

前端面试题(十四)

项目开发1.项目开发中,目录机构是怎么设计的https://go.zbj.com/news/13471.html2.曾经用过哪些开发工具https://www.jianshu.com/p/af24...

前端 JS 笔试百题

单选题JS基础js概念与类型检测以下不属于typeof运算符返回值的是?A. "string"B. "function"C.&n...

java面试之JVM篇第五问--谈谈对 OOM 的认识?如何排查 OOM 问题?

除了程序计数器,其他内存区域都有OOM的风险。栈一般经常会发生StackOverflowError,比如32位的windows系统单进程限制2G内存,无限创建线程就会发生栈的OOM...

Java筑基(Tomcat+Mysql+设计模式+并发+Netty+JVM)

1.Java筑基(Tomcat+Mysql+设计模式+并发+Netty+JVM)以JVM面试题为例:Java类加载过程?描述一下JVM加载Class文件的原理机制?Java内存分配GC是什么...

深入浅出!2020年春招+秋招JVM面试题整理(附答案)

运行时数据区是什么?虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干不同的数据区,这些区域有各自的用途、创建和销毁时间。线程私有:程序计数器、Java虚拟机栈、本地方法栈。线程共享:...

如何备战JVM调优面试?

面试痛点一些常见理论,如JVM内存模型,垃圾回收算法,垃圾回收器,类加载都背滚瓜烂熟。但面试官问:你平时在工作中如何进行JVM优化?很多人直接懵逼了,大部分工程师对JVM的掌握仅仅停留在JVM的一些理...

「Android大厂必问面试题」有三个线程时如何确保按顺序执行?

题目:有三个线程T1,T2,T3,怎么确保它们按顺序执行?这道题想考察什么?是否了解多个线程顺序启动的方式有哪些与真实场景使用,是否熟悉多个线程顺序启动在工作中的表现是什么?考察的知识点多个线程顺序启...

取消回复欢迎 发表评论: