常见的OOM 问题的 6 种场景

今天跟大家一起聊聊线上服务出现 OOM 问题的 6 种场景,希望对你会有所帮助。
图片

一、堆内存 OOM

堆内存 OOM 是最常见的 OOM 了。

出现堆内存 OOM 问题的异常信息如下:

java.lang.OutOfMemoryError: Java heap space

此 OOM 是由于 JVM 中 heap 的最大值,已经不能满足需求了。

举个例子:

public class HeapOOMTest {public static void main(String[] args) {List<HeapOOMTest> list = Lists.newArrayList();while (true) {list.add(new HeapOOMTest());}}
}

这里创建了一个 list 集合,在一个死循环中不停往里面添加对象。

执行结果:

图片

出现了 java.lang.OutOfMemoryError: Java heap space 的堆内存溢出。

很多时候,excel 一次导出大量的数据,获取在程序中一次性查询的数据太多,都可能会出现这种 OOM 问题。

我们在日常工作中一定要避免这种情况。

二、栈内存 OOM

有时候,我们的业务系统创建了太多的线程,可能会导致栈内存 OOM。

出现堆内存 OOM 问题的异常信息如下:

java.lang.OutOfMemoryError: unable to create new native thread

给大家举个例子:

public class StackOOMTest {public static void main(String[] args) {while (true) {new Thread().start()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/564025.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一分钟学习Markdown语法

title: 一分钟学习Markdown语法 date: 2024/3/24 19:33:29 updated: 2024/3/24 19:33:29 tags: MD语法文本样式列表结构链接插入图片展示练习实践链接问题 欢迎来到Markdown语法的世界&#xff01;Markdown是一种简单而直观的标记语言&#xff0c;让文本排版变得轻松有趣。接下…

尝试Docker Dev Environments

无法从本地目录创建容器环境 创建的容器环境无法在VS Code打开 从官方仓库打开 结果vscode报错。fine&#xff0c;告辞。老老实实用本地环境开发。

IPV6协议之DHCPV6

目录 背景&#xff1a; 一、DHCPV6概述 DHCPv6 Client&#xff1a; DHCPv6 Relay&#xff1a; DHCPv6 Server&#xff1a; 二、DHCPV6工作原理 DHCPV6无状态自动分配 三、DHCP基础配置 服务端 四、DHCPV6地址更新时间&#xff08;DHCPV4租期&#xff09; 五、DHCPV6…

Ubuntu系统——操作PostgreSQL数据库

目录 一、安装PostgreSQL数据库 二、操作PostgreSQL数据库 1.设置PostgreSQL数据库用户密码 2.进入postgres用户 3.查看所有数据库——\l&#xff08;L的小写&#xff09; 4.创建数据库 5.删除数据库 6.查看版本号 7.授权远程登录 三、PostgresSQL数据库的数据类型 …

8年测试经验,自动化测试最容易犯的几个错误总结,一篇概全...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 1、自动化一切 我…

Personal Website

Personal Website Static Site Generators hexo hugo jekyll Documentation Site Generator gitbook vuepress vitepress docsify docute docusaurus Deployment 1. GitHub Pages 2. GitLab Pages 3. vercel 4. netlify Domain 域名注册 freessl 域名解析域名…

python类属性和global变量区别

数据成员是指在类中定义的变量&#xff0c;即属性&#xff0c;根据定义位置&#xff0c;又可以分为类属性和实例属性。 类属性定义在方法前面。 定义类属性&#xff0c;非全局变量 class MyClass:#global cc 10 ## 类属性def my_function(self):global qwqw 9print(this …

更改Ubuntu桌面环境

功能异常 1&#xff1a; Ubuntu 22.04 将桌面 .desktop文件&#xff0c;用鼠标拖动到左侧的收藏夹菜单栏&#xff1a;无法实现&#xff0c;且会造成原来的 .desktop文件异常失效。 在多桌面环境下&#xff0c;切换到 KDE桌面&#xff0c;桌面 .desktop文件则是正常 OK的。 都 …

【机器学习】BP神经网络Matlab实现

目录 1.背景2.原理3.代码实现 1.背景 BP神经网络&#xff08;Backpropagation Neural Network&#xff09;是一种机器学习算法&#xff0c;其通过反向传播算法来训练网络&#xff0c;使其能够学习输入数据的模式并进行预测或分类任务。BP神经网络通常包括输入层、隐藏层和输出…

Qt 压缩/解压文件

前面讲了很多Qt的文件操作&#xff0c;文件操作自然就包括压缩与解压缩文件了&#xff0c;正好最近项目里要用到压缩以及解压缩文件&#xff0c;所以就研究了一下Qt如何压缩与解压缩文件。 QZipReader/QZipWriter QZipReader 和 QZipWriter 类提供了用于读取和写入 ZIP 格式文…

前端面试笔记

目录 React特性生命周期useEffectrouter传参方式*注意点* HTTP请求状态码 HTML行内元素语义化H5新特性cookie&#xff0c;session&#xff0c;token前端性能优化XSSCSRFBEM命名规范 JS判断变量的类型作用域链事件委托闭包ES6新特性节流和防抖Promise遍历Map方法 CSS盒模型样式优…

2024-03-24 思考-MBTI-简要记录

摘要: 2024-03-24 思考-MBTI-简要记录 MBTI16型人格: MBTI16型人格在人格研究和评价中得到了广泛的应用。MBTI是一种基于瑞士心理学家荣格在理论基础上发展起来的人格分类工具。为了准确判断个人的心态偏好&#xff0c;将每个人分为16种不同的人格类型。这种分类方法不仅为我们…