内存占满引起应用出现fullgc的case

简介: 内存占满/fullgc

故障现象

现象:系统响应缓慢

故障处理过程

中午12:13发生响应时间告警,同时有xxx-pro无法获取数据库连接的报错,

12:15 小A查看监控发现有两台服务器响应时间出现明显升高,

12:17 小B重启了这两台服务器,响应时间恢复正常

image.png

12:48收到xxx-pro无法获取数据库连接告警,

12:51运维导出了dump文件,从运维导出的文件分析,

告警是因为内存占满引起,7.1个G的内存中,异步线程占了6.5个G,主要是因为执行打印报销单引起,

12:53运维陆续重启了响应时间较高的几台xxx-pro的服务器后,12:58左右响应时间恢复正常

image.png


故障原因

部分服务器内存占满引起xxx系统出现fullgc,7.1个G的内存中,异步线程占了6.5个G,主要是因为调用打印报销单引起


反思与改进方案

  1. xxx-pro中包含的模块太多,定位问题需要通过导出服务器的内存和线程使用情况分析,定位到具体的调用链路后做优化,如果可以把xxx-pro中的内容拆分到对应的服务中,把xxx-pro拆得细一点,对提升定位问题的效率会有很大的帮助
  2. 目前的改进措施是整理xxx-pro和打印相关的情况,共有16个请求,志成协助在nginx上对这部分请求做了转发,新增了两台服务器,专门处理打印请求,打印相关的请求全部转发到这两台新增的服务器上
  3. 需要分析打印模块是否存在内存泄漏
  4. 目前有一种方案通过采用仿真模式进行jasper打印内容的填充来做优化,需要先在测试环境做验证

相关文章
|
25天前
|
缓存 算法 Java
Java内存管理与调优:释放应用潜能的关键
【4月更文挑战第2天】Java内存管理关乎性能与稳定性。理解JVM内存结构,如堆和栈,是优化基础。内存泄漏是常见问题,需谨慎管理对象生命周期,并使用工具如VisualVM检测。有效字符串处理、选择合适数据结构和算法能提升效率。垃圾回收自动回收内存,但策略调整影响性能,如选择不同类型的垃圾回收器。其他优化包括调整堆大小、使用对象池和缓存。掌握这些技巧,开发者能优化应用,提升系统性能。
|
1月前
|
编解码 算法 Java
构建高效的Android应用:内存优化策略详解
随着智能手机在日常生活和工作中的普及,用户对移动应用的性能要求越来越高。特别是对于Android开发者来说,理解并实践内存优化是提升应用程序性能的关键步骤。本文将深入探讨针对Android平台的内存管理机制,并提供一系列实用的内存优化技巧,以帮助开发者减少内存消耗,避免常见的内存泄漏问题,并确保应用的流畅运行。
|
1月前
|
人工智能 关系型数据库 Serverless
Serverless 应用引擎常见问题之AI应用限制人为限制内存如何解决
Serverless 应用引擎(Serverless Application Engine, SAE)是一种完全托管的应用平台,它允许开发者无需管理服务器即可构建和部署应用。以下是Serverless 应用引擎使用过程中的一些常见问题及其答案的汇总:
29 3
|
30天前
|
Java 调度 流计算
有没有 大佬用 springboot 启动flink 处理 ,发现springboot 加 schedule调度处理会内存占满情况?
有没有 大佬用 springboot 启动flink 处理 ,发现springboot 加 schedule调度处理会内存占满情况?
28 6
|
3月前
|
微服务
微服务 乾坤子应用 内存增长 没有释放
子应用内存没有被释放,每次刷新都会增加内存增长
|
1月前
|
存储 算法 编译器
【C++ 内存管理 重载new/delete 运算符 新特性】深入探索C++14 新的/删除的省略(new/delete elision)的原理与应用
【C++ 内存管理 重载new/delete 运算符 新特性】深入探索C++14 新的/删除的省略(new/delete elision)的原理与应用
47 0
|
3月前
|
存储 API
五十行代码教你写一个简单的内存池(二级指针的应用)
五十行代码教你写一个简单的内存池(二级指针的应用)
20 0
|
4天前
|
定位技术 Python
Pyglet综合应用|推箱子游戏之关卡图片载入内存
Pyglet综合应用|推箱子游戏之关卡图片载入内存
13 0
|
9天前
|
移动开发 Android开发 开发者
构建高效Android应用:采用Kotlin进行内存优化的策略
【4月更文挑战第18天】 在移动开发领域,性能优化一直是开发者关注的焦点。特别是对于Android应用而言,由于设备和版本的多样性,确保应用流畅运行且占用资源少是一大挑战。本文将探讨使用Kotlin语言开发Android应用时,如何通过内存优化来提升应用性能。我们将从减少不必要的对象创建、合理使用数据结构、避免内存泄漏等方面入手,提供实用的代码示例和最佳实践,帮助开发者构建更加高效的Android应用。
16 0
|
11天前
|
缓存 移动开发 Java
构建高效的Android应用:内存优化策略
【4月更文挑战第16天】 在移动开发领域,尤其是针对资源有限的Android设备,内存优化是提升应用性能和用户体验的关键因素。本文将深入探讨Android应用的内存管理机制,分析常见的内存泄漏问题,并提出一系列实用的内存优化技巧。通过这些策略的实施,开发者可以显著减少应用的内存占用,避免不必要的后台服务,以及提高垃圾回收效率,从而延长设备的电池寿命并确保应用的流畅运行。