一次 Java 进程 OOM 的排查分析(glibc 篇)
遇到了一个 glibc 导致的内存回收问题,查找原因和实验的的过程是比较有意思的,主要会涉及到下面这些:- Linux 中典型的大量 64M 内存区域问题- glibc 的内存分配器 ptmalloc
实战:OOM 后我如何分析解决的
现在很多面试官都会关心你是否有过解决内存泄漏的问题,是否有过JVM的调优经验。你如果没有经历过,该如何回答呢?希望下文对你有所帮助。 背景前不久,上线了一个新项目,这个项目是一个压测系统,可以简单的看
一次百万长连接压测 Nginx OOM 的问题排查分析
在最近的一次百万长连接压测中,32C 128G 的四台 Nginx 频繁出现 OOM,出现问题时的内存监控如下所示。排查的过程记录如下。 现象描述这是一个 websocket 百万长连接收发消息的压测
一次真实的线上OOM问题定位
概述近日,负责的一系统生产环境上出现了OutOfMemoryError,伴随着这个问题随之而来的是一堆Full GC, CPU 百分之百,频繁宕机重启等问题,严重影响业务的推广及使用,此类问题一般处理
JVM 发生 OOM 的 8 种原因、及解决办法
小A:xx服务又宕机了小B:歪日,咋搞的,登上去看看咋回事小A:又OOM了,不知道哪个写的代码,一坨一样。撸Java的同学,多多少少会碰到内存溢出(OOM)的场景,但造成OOM的原因却是多种多样。 堆
Java OOM 实战篇:应用故障之Java heap space 堆溢出实战
以下是用于测试OOM的测试代码:```javapublic class HeapMemUseTest { public static void main(String[] args) {
fastJson与一起堆内存溢出'血案'
现象- QA同学反映登录不上服务器 排查问题1--日志级别- 查看log,发现玩家登录的时候抛出了一个java.lang.OutOfMemoryError - 大概代码是向Redis序列化一个Pla
为什么容器内存占用居高不下,频频 OOM(续)
在之前的文章《[为什么容器内存占用居高不下,频频 OOM](https://heapdump.cn/article/1589003)》 中,我根据现状进行了分析和说明,收到了很多读者的建议和疑
一则OOM死机故障的处理过程
OOM是Out of Memory的简写,也就是内存不足。出现该问题的原因有很多,如程序内存泄漏等。内存泄漏问题可以通过定时地终止和重启有问题的程序来发现和解决。在比较新的Linux内核版本中,有一种
为什么容器内存占用居高不下,频频 OOM
最近我在回顾思考(写 PPT),整理了现状,发现了这个问题存在多时,经过一番波折,最终确定了元凶和相对可行的解决方案,因此分享一下排查历程,希望能够给大家一些借鉴的经验。时间线:- 在上 Kubern
导致程序出现OOM的因素,夜深人静的时候,程序OOM异常追踪
作为Java程序员, 除了享受垃圾回收机制带来的便利外, 还深受OOM(Out Of Memory)的困惑和折磨。 堆溢出(heap)编写如下例程:```javapublic static void
震惊!线上四台机器同一时间全部 OOM,到底发生了什么?
案发现场昨天晚上突然短信收到 APM (即 Application Performance Management 的简称,我们内部自己搭建了这样一套系统来对应用的性能、可靠性进行线上的监控和预警的一种
操作系统
内存问题探微
这篇文章是我在公司 TechDay 上分享的内容的文字实录版,本来不想写这么一篇冗长的文章,因为有不少的同学问是否能写一篇相关的文字版,本来没有的也就有了。说起来这是我第二次在 TechDay 上做的
消失的Java进程-Linux OOM Killer
在一台虚拟机上执行docker java应用,每隔一段时间就会出现java进程消失、而且没有任何jvm error log的情况。略一寻思,应该是遇到网上常说的Linux OOM的情况:虚拟机10G,
刨根问底——记一次 OOM 试验造成的电脑雪崩引发的思考
问题初现----电脑雪崩在写「垃圾回收-实战篇」时,按书中的一个例子做了一次实验,我觉得涉及的知识点挺多的,所以单独拎出来与大家共享一下,相信大家看完肯定有收获。 画外音:尽信书不如无书,对每一个例子
jvm堆内存溢出后,其他线程是否可继续工作
背景之前网上出现一个面试题:“一个线程OOM后,其他线程还能运行吗?”。我看网上出现了很多不靠谱的答案。这道题其实很有难度,涉及的知识点有jvm内存分配、作用域、gc等,不是简单的是与否的问题。由于题
导致程序出现OOM的因素,夜深人静的时候,程序OOM异常追踪
作为Java程序员, 除了享受垃圾回收机制带来的便利外, 还深受OOM(Out Of Memory)的困惑和折磨.先来看下java的内存分布 堆溢出(heap)编写如下例程:```javapublic
JVM源码分析之临门一脚的OutOfMemoryError完全解读
概述OutOfMemoryError,说的是java.lang.OutOfMemoryError,是JDK里自带的异常,顾名思义,说的就是内存溢出,当我们的系统内存严重不足的时候就会抛出这个异常(PS
记一次JVM OOM 实战优化
刚接手的服务,正常稳定运行了很长一段时间,在大家伙收拾东西准备回家过年时,突然就抽风了。接口失败率居高不下?看日志!```javaGC overhead limit exceededjava.lang
java内存溢出问题分析过程
背景运维人员反馈一个容器化的java程序每跑一段时间就会出现OOM问题,重启后,间隔大概两天后复现。 问题调查 一、查日志由于是容器化部署的程序,登上主机后使用docker logs Containe
内存溢出及解决方案
什么是内存溢出 JVM运行过程中,程序不断的申请内存空间用于保存运行时数据,当程序申请的内存空间系统无法满足时,就会抛出内存溢出错误。内存溢出发生的区域以及相应的解决方案都不相同,下面我们逐一分析内
慌了!LinkedHashMap和hashTable的Entry居然有500w之多,还无法回收
故障介绍某一日早上七点,我还在睡梦之中,8点醒来发现运维群内有人at。一看说是用户服务的一个节点挂掉了。然后大概原因是因为OOM,运维还在群里发了一个jstack 的栈dump文件,未必是事故发生时的
PhantomReference? 虚引用? OOM?
背景关于各种引用参考https://www.geeksforgeeks.org/types-references-java/在我之前认知中,虚引用除了自身对象占用内存外,其引用对象referent在不
首次排查 OOM 实录
前言距离上篇文章更新已经一月有余,之所以一直没更新一是工作最近比较忙,二是感觉产出不了什么对自己和他人有价值的文章。因此这段时间,主要的空闲时间在学习技术和写 GitHub,博客这边就暂时落下了。本篇
大量生成字节码导致元空间溢出问题排查
前几天生产环境出现了一个问题,gc日志里面某一个时间段出现了大量的Full GC,而且都是回收元空间内存失败了,最终导致了JVM停止运行,微服务中的某个服务发生了宕机。下面记录下排查该问题的过程。首先
使用XPocket插件JConsole排查线上OOM异常案例
XPocket插件JConsole主要用于内存问题的排查,能够对堆中的Eden、Survivor、Old区以及堆外的Metaspace、Code Cache等区域进行观察。我们在使用JConsole时
记一次线上内存过高的问题解决
本文正在参加「Java应用线上问题排查经验/工具分享」活动 背景线上-product-center服务器发现有报警,从报警看出内存占用过高,开始定位问题 解决去有问题的服务器看cpu负载,通过`top
JVM相关 - StackOverflowError 与 OutOfMemoryError
本文基于 Java 15StackOverflowError 与 OutOfMemoryError 是两个老生常谈的 Java 错误。Java 中的虚拟机错误 VirtualMachineError
深入剖析JVM堆外内存的监控与回收
记得那是一个风和日丽的周末,太阳红彤彤,花儿五颜六色,96 年的普哥微信找到我,描述了一个诡异的线上问题:线上程序使用了 NIO FileChannel 的 堆内内存作为缓冲区,读写文件,逻辑可以说相当简单,但根据监控却发现堆外内存飙升,导致了 OutOfMemeory 的异常。
Java中利用软引用和弱引用来避免oom
强引用、软引用、弱引用和虚引用的介绍,还有使用方法
HeapDump性能社区OOM问题排查实战案例精选合集
内存溢出(Out Of Memory,简称OOM)是指应用系统中存在无法回收的内存或使用的内存过多,最终使得程序运行要用到的内存大于能提供的最大内存。此时程序就运行不了,系统会提示内存溢出,有时候会自
如果线上遇到了OOM,该如何解决?
OOM 意味着程序存在着漏洞,可能是代码或者 JVM 参数配置引起的。这篇文章和读者聊聊,Java 进程触发了 OOM 后如何排查常说对生产环境保持敬畏之心,快速解决问题也是一种敬畏的表现为什么会 OOMOOM 全称 “Out Of Memory”,表示内存耗尽。
如何干掉OOM,看这篇就够了!
前言随着项目不断壮大,OOM(Out Of Memory)成为奔溃统计平台上的疑难杂症之一。大部分业务开发人员对于线上 OOM 问题一般都是暂不处理:一方面是因为 OOM 问题没有足够的 log,无法在短期内分析解决。另一方面可能是忙于业务迭代、身心疲惫,没有精力去研究 OOM 的解决方案。这
OOM案例分析之 gc overhead limit exceeded问题
一个生产环境里,oom的gc overhead limit exceeded典型案例分析
JVM coredump分析系列(1):OOM导致的crash分析
笔者近期遇到多个内存 OOM 导致的crash,因为内存问题发生的原因不仅牵涉 JVM 还涉及到操作系统底层,在此整理一下相关的原理和分析思路,以便今后发生类似的问题可以有一个参考
如果线上遇到了OOM,该如何解决?
OOM 意味着程序存在着漏洞,可能是代码或者 JVM 参数配置引起的。这篇文章和读者聊聊,Java 进程触发了 OOM 后如何排查常说对生产环境保持敬畏之心,快速解决问题也是一种敬畏的表现1、为什么会 OOMOOM 全称 “Out Of Memory”,表示内存耗尽。
一篇说明白什么是oom,为什么会oom,oom的类型和常见解决方法
oom说简单也简单,说复杂也复杂,不管简单和复杂,搞明白底层的逻辑肯定不会错,这一篇老文章帮助大家从0开始理解oom!
一次因多线程使用不当导致OOM的排查过程
导语多线程使用不当会导致OOM,如果没有及时发现更会导致GC,本篇是作者日常中遇到到因多线程使用不当导致的OOM排查过程,也是一篇比较经典的OOM排查实战,希望大家读后有所收获。正文事故描述老规矩,我们先看下事故过程:某日,从 6 点 32 分开始少量用户访问 app 时会出现首页访问异常,
java.lang.OutOfMemoryError GC overhead limit exceeded原因分析及解决方案
OOM问题之一:Java.lang.OutOfMemoryError: GC overhead limit exceeded案例
公司内部一次关于OOM故障复盘分享
又一次故障发生了,今天把那次故障复盘一下,做个总结,也给小伙伴分享一下 我是怎么从接到告警开始,怎么一步一步分析故障,然后定位到问题,最后完美解决,成功上线解决问题的。
JVM的内存区域到底是如何划分的?
学习Java,了解jvm的最基础的原理,时常看会有不同的理解和收获
实战案例:记一次dump文件分析历程
一次真实,酣畅淋漓的排查案例!

有开始,就会有进​步!

在追求性能的道路上,记录每一刻的成长!源码解读,编程技巧,外文翻译,技术实践,线上案例等等,记录自己,启发他人!

专家作者推荐

巡山小汪

关注微信公众号《解Bug之路》,有问题请在公众号中咨询:) 无论多么艰苦的时刻,都不要忘记,辉煌的未来,在你的眼中闪耀!

飞哥开发内功

《深入理解Linux网络》作者,腾讯搜狗十年工程师,公众号「开发内功修炼」作者!

踩刀诗人

聊聊技术,唠唠段子,偶尔做菜写诗,欢迎关注我的公众号 踩刀诗人

Brand

搜索关注微信公众号【架构与思维】:撰稿者为bat、字节的几位高阶研发/架构,专注技术分享。

专题推荐

分布式系统绕不开的核心之一的就是数据缓存,有了缓存的支撑,系统的整体吞吐量会有很大的提升。通过使用缓存,我们把频繁查询的数据由磁盘调度到缓存中,保证数据的高效率读写。
21篇文章38544阅读量
Netty 是一个异步事件驱动的网络通信层框架,用于快速开发高可用高性能的服务端网络框架与客户端程序,它极大地简化了 TCP 和 UDP 套接字服务器等网络编程。
作者:闪电侠,《跟闪电侠学 Netty》已出版了。书的前半部分是掘金小册中的内容:通过一个完整的 IM 项目入门 Netty;后半部分用了较大的篇幅来介绍 Netty 的底层原理,也会穿插讲一些源码阅读的思路,希望能够帮助到你。
13篇文章21865阅读量