`
85977328
  • 浏览: 1871330 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

内存溢出案例分析

 
阅读更多
集群间同步导致内存溢出
JBossCache的JGroups进行通信。保证各个数据节点的数据同步。主要故障一般出现在网络不稳定的情况下,会有大量的同步重发数据在协议栈中积累。当并发量大的时候,加之网络不稳定,就会在内存中堆积过多导致溢出。

堆外内存导致的溢出错误
cometD1.1.1框架,有大量的NIO操作,需要用大豆哦Direct Memory。容易造成堆外内存溢出。
Exception in thread "main" java.lang.OutOfMemoryError
at sun.misc.Unsafe.allocateMemory(Native Method)
at com.chinaso.phl.Server.main(Server.java:72)
垃圾收集的时候虚拟机虽然会对Direct Memory进行回收,但是不能像新生代和老年代一样,发现空间不足了就通知收集器进行垃圾回收,只能等待老年代满了后Full GC,然后"顺便"清理掉内存的废弃对象。
此案例可以合理通过合理设置-XX:MaxDirectMemorySize=1024m来解决。

外部命令导致系统缓慢
Runtime.getRuntime().exec()执行原理
    首先克隆一个和当前虚拟机拥有一样环境变量的进程,再用这个新的进程去执行外部命令,最后再退出这个进程。
    如果频繁执行这个操作,系统的消耗会很大,不仅是CPU,内存负担也很重。这种方法在JAVA虚拟机中非常消耗资源,即使外部命令本身很快能执行完毕,频繁调用时创建进程的开销也非常可观。

服务器JVM进程崩溃
远端异步调用等待,导致socket很长时间才能返回,并且返回结果都是中断,Connection Reset。时间越长,积累的越来越多的socket连接,最终超过虚拟机承受能力后,使虚拟机崩溃。改用消息队列可以良好的解决。
1
0
分享到:
评论

相关推荐

    JVM原理及内存溢出经典案列分析.ppt

    简单的判断JVM内存溢出的方法

    Java内存溢出案例模拟和原理分析过程

    主要介绍了Java内存溢出案例模拟和原理分析过程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    性能测试总结之内存泄露和内存溢出

    主要从以下几部分来说明,关于内存和内存泄露、溢出的概念,区分内存泄露和内存溢出;内存的区域划分,了解GC回收机制;重点关注如何去监控和发现内存问题;此外分析出问题还要如何解决内存问题。下面就开始本篇的...

    性能测试总结之内存泄露和内存溢出[1]

    性能测试总结之内存泄露和内存溢出[1]软件测试刚刚做完了一个项目的性能测试,“有幸”也遇到了内存泄露的案例,所以在此和大家分享一下。主要从以下几部分来说明,关于内存和内存泄露、溢出的概念,区分内存泄露和...

    现代C语言核心特性解析,C语言编程与宠物狗互动案例分析.pdf

    # 现代C语言核心特性解析,C语言编程与宠物狗互动案例分析 本文主要介绍现代C语言的核心特性和如何使用C语言与宠物狗进行互动。现代C语言是C语言的一种现代化发展,具有更加丰富的特性和更高的安全性。 在本文中,...

    性能瓶颈分析及案例总结

    2 性能分析步骤 211 确定应用类型 212 掌握压测环境的资源参数 213 确定基线统计 214 确定性能的瓶颈点。 215 确定是否优化 3 性能分析命令 4 常见问题总结 ...414 堆内存溢出后处理方案。 5 瓶颈分析总结及案例

    Java虚拟机

    第二部分讲解了JVM的自动内存管理,包括虚拟机内存区域的划分原理以及各种内存溢出异常产生的原因;常见的垃圾收集算法以及垃圾收集器的特点和工作原理;常见虚拟机监控与故障处理工具的原理和使用方法。第三部分...

    深入理解_Java_虚拟机 JVM_高级特性与最佳实践

    调优案例分析与实战 / 106 5.1 概述 / 106 5.2 案例分析 / 106 5.2.1 高性能硬件上的程序部署策略 / 106 5.2.2 集群间同步导致的内存溢出 / 109 5.2.3 堆外内存导致的溢出错误 / 110 5.2.4 外部命令导致系统...

    深入理解JVM内存结构及运行原理全套视频加资料.txt

     第4讲 jvm初体验-内存溢出问题的分析与解决 免费 00:17:59  第5讲 jvm再体验-jvm可视化监控工具 免费 00:21:17  第6讲 杂谈 免费 00:12:37  第7讲 Java的发展历史 00:27:24  第8讲 Java的发展历史续 00:...

    大型国企内部Java面试题

    JVM:涉及常用的内存泄漏、内存溢出、MAT、jstack的分析案例 Linux:涉及开发中常用的命令,如telnet、curl、wget、netstat Redis:集群底层原理、持久化内部机制等 多线程、集合等 内容过多,就不一一例举。整理...

    深入理解Java虚拟机视频教程(jvm性能调优+内存模型+虚拟机原理)视频教程

    第4节jvm初体验-内存溢出问题的分析与解决 [免费观看] 00:17:59分钟 | 第5节jvm再体验-jvm可视化监控工具 [免费观看] 00:21:17分钟 | 第6节杂谈 [免费观看] 00:12:37分钟 | 第7节Java的发展历史00:27:24分钟 | ...

    华为编程开发规范与案例

    软件编程规范培训实例与练习 软件编程规范培训实例与练习  问题分类 1 逻辑类问题(A类)-指设计、编码中出现的计算正确性和一致性...再分析整个函数,pSpcCB在函数前部分已经被赋值, pSpcCB = SpcCB + (PortTable...

    Android典型技术模块开发详解

    目录 第一篇 Android开发初步 ...16.5 Bitmap内存溢出 16.5.1 图片预先缩放 16.5.2 普通的图片缩放方法 16.5.3 Dalvik虚拟机的堆内存分配 16.5.4 Bitmap对象及时释放 16.6 多分辨率适应 16.7 本章小结

    WINDOWS 内部原理 (八)

    这是一个为IT专业人员量身定做的Windows内部知识课程,在介绍原理的同时,也紧密地围绕实际案例和常见的故障进行分析点评。这是一个系统的学习Windows底层工作机制的好机会,课程内容深入浅出,精彩纷呈,绝对不容...

    Windows内部原理(十一):存储和文件系统

    这是一个为IT专业人员量身定做的Windows内部知识课程,在介绍原理的同时,也紧密地围绕实际案例和常见的故障进行分析点评。这是一个系统的学习Windows底层工作机制的好机会,课程内容深入浅出,精彩纷呈,绝对不容...

    WINDOWS 内部原理(十)驱动和硬件的管理

    这是一个为IT专业人员量身定做的Windows内部知识课程,在介绍原理的同时,也紧密地围绕实际案例和常见的故障进行分析点评。这是一个系统的学习Windows底层工作机制的好机会,课程内容深入浅出,精彩纷呈,绝对不容...

    windows 内部原理(一)

    这是一个为IT专业人员量身定做的Windows内部知识课程,在介绍原理的同时,也紧密地围绕实际案例和常见的故障进行分析点评。这是一个系统的学习Windows底层工作机制的好机会,课程内容深入浅出,精彩纷呈,绝对不容...

    WINDOWS 内部原理(九)

    这是一个为IT专业人员量身定做的Windows内部知识课程,在介绍原理的同时,也紧密地围绕实际案例和常见的故障进行分析点评。这是一个系统的学习Windows底层工作机制的好机会,课程内容深入浅出,精彩纷呈,绝对不容...

    WINDOWS 内部原理 (三)

    这是一个为IT专业人员量身定做的Windows内部知识课程,在介绍原理的同时,也紧密地围绕实际案例和常见的故障进行分析点评。这是一个系统的学习Windows底层工作机制的好机会,课程内容深入浅出,精彩纷呈,绝对不容...

Global site tag (gtag.js) - Google Analytics