首页 > 编程语言 >【Java】如何定位线上的OOM

【Java】如何定位线上的OOM

时间:2024-08-03 17:23:50浏览次数:19  
标签:Java OOM 然后 buffer 线上 缓冲区 连接池 内存

在这里插入图片描述

1.概述

本章我们主要讲解如何定位线上的OOM的问题。

2.OOM原因

OOM的原因有很多种,下面举几个列子。

2.1 一次申请对象过多

比如你查询数据库数据,几千万的数据一次查询完毕,然后都放在内存,然后当然会导致OOM了。

解决: 可以分页查询

2.2 内存耗尽-未释放

比如我们使用数据库连接池,然后每次都开启新的链接,但是就是不释放,然后导致内存耗尽。

我们可以引入池化思想。比如连接池,缓冲区buffer池。

缓冲区buffer池最多的是使用 Netty。

2.3 资源给的太少

给与应用的资源本身就少,我们可以使用jps呀,或者

jmpa -heap 堆栈信息

这个打印的信息比较详细
在这里插入图片描述

2.4 大对象直接进入老年代

大对象导致内存释放较慢,内存累积然后溢出。

首先参考文

标签:Java,OOM,然后,buffer,线上,缓冲区,连接池,内存
From: https://blog.csdn.net/qq_21383435/article/details/131360728

相关文章

  • Java - Stream流
    Stream流的使用结合Lambda表达式简化集合、数组操作获取Stream流对象->使用中间方法处理数据->使用终结方法处理数据调用方式中间方法1.中间方法返回的是新的Stream流,故每个Stream流只能使用一次中间方法,一般使用链式编程2.修改Stream流中数据不会影响原集合或数组......
  • Java中的不同数据类型的方法调用
    数组在Java中,数组是一个基础的数据结构,用来存储固定大小的同类型元素。数组本身在Java中是一个对象,但它的方法比较有限,主要依赖于Java的Arrays类来进行数组操作。排序sort():对整个数组或指定范围的元素进行排序。重载版本支持所有基本类型数组和对象数组。对于对象数组......
  • Java中使用通配符的限制与使用案例解析
    UML类图如下Person类Student类Teacher类Grade类packagecom.itheima.demo;importjava.util.ArrayList;importjava.util.Collections;publicclassGrade{ privateArrayList<Teacher>teacherList=newArrayList<>(); privateArrayList<Student......
  • 【Java基础】02变量和数据类型
    变量一个数据存储空间的表示不同数据存入具有不同内存地址的空间,相互独立,内存地址不好记,通过变量名可以简单快速地找到数据。变量命名规则包含数字、字母、下划线、$不能以数字开头,不能是纯数字英文命名,要有意义帕斯克命名法(驼峰命名法)大骆驼:HelloWorld首字母大写,一般......
  • java 面向对象1
    1.java类一个类文件可以定义多个类,只能有一个用public修饰.java基本语法方面在有的很想c++.在学习java面向对象的时候我也得对比c++来学习.学习c++的三大特性:继承,多态,封装,是如何在java中体现的.2.封装,封装是类最基础的特装类通过将好几个成员数据封装成一个整体,便于数据成......
  • 【Java零基础视频教程】综合练习题(一)——基础练习
    文章目录基础练习飞机票打印素数生成验证码复制数组评委打分数字加密抽奖双色球基础练习飞机票机票价格按照淡季旺季、头等舱和经济舱收费、输入机票原价、月份和头等舱或经济舱。​按照如下规则计算机票价格:旺季(5-10月)头等舱9折,经济舱8.5折,淡季(11月到来年4月)......
  • Java基础总结
    1,JavaJMM(java内存模型)这个内存模型搞起来还是有点弯弯绕,一点点的整理吧。JMM的目的就是保证共享变量在多线程环境下的原子性,可见性,与有序性而定义的一组规范。这些问题的出现都跟CPU的设计有关系,CPU是计算机的运算核心所有的操作或者说指令都是在CPU里面运行的,而且CPU的运行......
  • 触想工业显示器方案在汽车装配生产线上的应用
    一、行业发展背景中国汽车工业协会数据显示,2023年我国汽车产销量双双实现历史性突破,分别达到3016.1万辆和3009.4万辆,并连续15年位居全球首位。汽车产业热销背后是先进的生产装配体系支撑,从零部件到整车,汽车的生产和工艺流程越来越复杂,涉及的自动化装配和检测设备也......
  • 学生java学习路程-5
    ok,到了一周一次的总结时刻,我大致会有下面几个方面的论述:1.这周学习了Java的那些东西2.这周遇到了什么苦难3.未来是否需要改进方法等几个方面阐述我的学习路程。抽象类abstract接口interface,定义时加入注释解释接口含义String类String是不可变字符串,所有的替换,截取子字符串,......
  • Java SE核心技术——9抽象类
    面向对象编程(Object-OrientedProgramming,简称OOP)和面向过程编程(Procedure-OrientedProgramming)是两种不同的编程范式,它们在设计和实现软件时采用了不同的方法和哲学。一、面向对象编程核心概念:面向对象编程的核心是"对象",对象可以包含数据(属性)和代码(方法)。万物皆对象。封......