1. Java 堆空间

**发生频率:**5颗星

造成原因

  1. 无法在 Java 堆中分配对象

  2. 吞吐量增加

  3. 应用程序无意中保存了对象引用,对象无法被 GC 回收

  4. 应用程序过度使用 finalizer。finalizer 对象不能被 GC 立刻回收。finalizer 由结束队列服务的守护线程调用,有时 finalizer 线程的处理能力无法跟上结束队列的增长

解决方案

单位对应:GB -> G, g;MB -> M, m;KB -> K, k

  1. 使用 -Xmx 增加堆大小

  2. 修复应用程序中的内存泄漏

2. GC 开销超过限制

**发生频率:**5颗星

造成原因

  1. Java 进程98%的时间在进行垃圾回收,恢复了不到2%的堆空间,最后连续5个(编译时常量)垃圾回收一直如此。

解决方案

  1. 使用 -Xmx 增加堆大小

  2. 使用 -XX:-UseGCOverheadLimit 取消 GC 开销限制

  3. 修复应用程序中的内存泄漏

3. 请求的数组大小超过虚拟机限制

**发生频率:**2颗星

造成原因

  1. 应用程序试图分配一个超过堆大小的数组

解决方案

  1. 使用 -Xmx 增加堆大小

  2. 修复应用程序中分配巨大数组的 bug

4. Perm gen 空间

**发生频率:**3颗星

造成原因

Perm gen 空间包含:

  • 类的名字、字段、方法

  • 与类相关的对象数组和类型数组

  • JIT 编译器优化

当 Perm gen 空间用尽时,将抛出异常。

解决方案

  1. 使用 -XX: MaxPermSize 增加 Permgen 大小

  2. 不重启应用部署应用程序可能会导致此问题。重启 JVM 解决

5. Metaspace

**发生频率:**3颗星

造成原因

  1. 从 Java 8 开始 Perm gen 改成了 Metaspace,在本机内存中分配 class 元数据(称为 metaspace)。如果 metaspace 耗尽,则抛出异常

解决方案

  1. 通过命令行设置 -XX: MaxMetaSpaceSize 增加 metaspace 大小

  2. 取消 -XX: maxmetsspacedize

  3. 减小 Java 堆大小,为 MetaSpace 提供更多的可用空间

  4. 为服务器分配更多的内存

  5. 可能是应用程序 bug,修复 bug

6. 无法新建本机线程

**发生频率:**5颗星

造成原因

  1. 内存不足,无法创建新线程。由于线程在本机内存中创建,报告这个错误表明本机内存空间不足

解决方案

  1. 为机器分配更多的内存

  2. 减少 Java 堆空间

  3. 修复应用程序中的线程泄漏。

  4. 增加操作系统级别的限制

  • ulimit -a

  • 用户进程数增大 (-u) 1800

  1. 使用 -Xss 减小线程堆栈大小

7. 杀死进程或子进程

**发生频率:**1颗星

造成原因

  1. 内核任务:内存不足结束器,在可用内存极低的情况下会杀死进程

解决方案

  1. 将进程迁移到不同的机器上

  2. 给机器增加更多内存

与其他 OOM 错误不同,这是由操作系统而非 JVM 触发的。

8. 发生 stack_trace_with_native_method

**发生频率:**1颗星

造成原因

  1. 本机方法(native method)分配失败

  2. 打印的堆栈跟踪信息,最顶层的帧是本机方法

解决方案

使用操作系统本地工具进行诊断

Java面试核心知识点笔记

其中囊括了JVM、锁、并发、Java反射、Spring原理、微服务、Zookeeper、数据库、数据结构等大量知识点。

Java中高级面试高频考点整理

更多Java进阶知识笔记文档分享,这些对于面试还是学习来说都是一份不错的学习资料

有需要的朋友可以戳这里即可免费领取

最后还分享Java进阶学习及面试必备的视频教学

以戳这里即可免费领取](https://gitee.com/vip204888/java-p7)**

[外链图片转存中…(img-k6MhRPRQ-1627101877642)]

最后还分享Java进阶学习及面试必备的视频教学

[外链图片转存中…(img-1OBXryri-1627101877644)]

RocketMQ避坑指南:springcloud教程权威指南相关推荐

  1. mysql权威指南 代码_mysql权威指南学习札记

    mysql权威指南学习笔记 1,mysql的标示符最多就64个字符 2,drop table table1,table2,table3;删除多个table的时候用,号分隔开,为了避免不必要的错误,我们 ...

  2. RocketMQ避坑指南:java后端开发电脑配置

    结构化数据.非结构化数据与半结构化数据 文章的开始,聊一下结构化数据.非结构化数据与半结构化数据,因为数据特点的不同,将在技术上直接影响存储引擎的选型. 首先是结构化数据,根据定义结构化数据指的是由二 ...

  3. java jsp学习指南_JSP教程–最终指南

    java jsp学习指南 编者注: JavaServer Pages(JSP)技术使您可以轻松创建同时包含静态和动态组件的Web内容. JSP技术提供了Java Servlet技术的所有动态功能,但提 ...

  4. ExoPlayer播放器 开发者指南(官方权威指南译文)

    前言   因为公司项目原因,目前开始研究ExoPlayer的原理及实现.其中对DRM更是有所涉及,因此自己也好借此机会扩展自己的音视频知识,同时写出一些自己的技术总结与分享,希望对其他学习此播放器的朋 ...

  5. Cocos2D权威指南

    Cocos2D权威指南 作者:王寒 屈光辉 周雪彬 出版社:机械工业出版社 出版年:2013-3 页数:671 定价:99.00元 ISBN:9787111414100 样章下载:http://wen ...

  6. Kubernetes权威指南(下)

    Phineas # Kubernetes权威指南<Kubernetes权威指南>第5版勘误:https://github.com/kubeguide/K8sDefinitiveGuide- ...

  7. 《Neo4J 权威指南》知识点总结

    目录 Neo4j Neo4j 权威指南 知识点梳理 Neo4j Neo4j 是目前图数据库领域最流行的数据库,在知识图谱等应用上,主要采用 Neo4j,因为其简单.性能好.强大.其推出的 Cypher ...

  8. 【技术分享】戴尔工作站安装Win10+Ubuntu20.04双系统教程与避坑指南

    文章目录 引言 1.安装前的几个注意事项(避坑指南) 1.1.有多块硬盘,该如何分配给Win10和Ubuntu系统? 1.2.Ubuntu分区应该怎么分? 2.系统安装步骤 2.1.下载系统镜像 2. ...

  9. kali子系统安装教程(包含避坑指南,新手必看!)

    #版权声明:图中含有知乎@王维同学字样的,是我在知乎的号,不是盗的文章!这篇文章比知乎更详细!! 1.开启安装Linux子系统需要的扩展 Win+Q搜索功能 勾选需要的扩展,Hyper-V.Windo ...

最新文章

  1. 达摩院清华博士研发了一个AI摸鱼神器!有了它,老板都不好意思打扰你
  2. JavaScript中hoisting(悬置/置顶解析/预解析) 实例解释,全局对象,隐含的全局概念...
  3. 服务发现比较:Consul vs Zookeeper vs Etcd vs Eureka
  4. event.x,event.clientX,event.offsetX区别
  5. 弗林斯传输公式、天线温度
  6. matlab地址数据类型uns,使用matlab生成sine波mif文件
  7. [Remoting]dotNet Framework升级后Remoting信道使用的安全问题
  8. 微型计算机控制课程设计,《微型计算机控制技术》课程设计
  9. JDK帮助文档无法打开的常见问题和解决办法
  10. DBConvert Studio - 数据库迁移和同步 - Crack
  11. 攻防世界-杂项-simple_transfer
  12. 软件测试工程师未来十年的职业规划
  13. 计算机自动维护有用吗,Win10系统关闭自动维护功能提高系统运行速度
  14. 反病毒工具-Wireshark
  15. usc week 5 计算几何(包含凸包) 队内练习题
  16. 虚拟机连不上网问题详解
  17. 如何锁定计算机硬盘,详细教您如何给硬盘加密
  18. 机器学习(一) 贝叶斯法则与概念学习
  19. VScode 淡绿色界面
  20. 4x root 红米_红米手机4x如何获取root权限?

热门文章

  1. R软件中 文本分析安装包 Rjava 和 Rwordseg 傻瓜式安装方法四部曲
  2. Asp.net MVC 4新项目中创建area的后续操作
  3. Android开发和调试必备工具-SDK Tools
  4. Linux 引导管理器 grub2 使用简介
  5. html option ajax,Ajax实现简单下拉选项效果【推荐】
  6. 华中师范大学邮箱matlab,18春[华中师范大学]华师《Matlab基础与应用》在线作业1(100分)...
  7. php7如何安装swoole,PHP7如何安装Swoole?
  8. java struts2 excel上传_文件上传方法,使用Struts2,实现Excel文件读取并写入数据库技术...
  9. puppet enc mysql_精通Puppet配置管理工具
  10. linux 查看下挂磁盘,linux下磁盘挂载与查看