java为什么内存会无限增大_Java进程的内存无限增长,但是MemoryMXBean报告稳定堆和非堆大小...
我正在与一个开发在1GB
Linux目标系统上运行的Java GUI应用程序的团队合作.
我们有一个问题,我们的java进程使用的内存无限期地增长,直到Linux终于杀死了java进程.
我们的堆内存健康稳定. (我们广泛地分析了我们的堆)我们还使用MemoryMXBean监视应用程序的非堆内存使用情况,因为我们认为问题可能在这里.但是,我们看到的报告的堆大小报告的非堆大小保持稳定.
以下是使用1GB RAM(由MemoryMXBean报告的堆和非堆,使用Linux的顶级命令(驻留内存)监视的Java进程使用的总内存))在目标系统上运行应用程序时的数字的示例.
在启动时:
> 200 MB堆提交
> 40 MB非堆提交
> java进程使用320 MB
1天后:
> 200 MB堆提交
> 40 MB非堆提交
> java进程使用的360 MB
2天后:
> 200 MB堆提交
> 40 MB非堆提交
> java进程使用的400 MB
上面的数字只是我们系统执行的“更干净”的代表,但它们是相当准确和接近现实的.正如你所看到的,趋势是明确的.运行应用程序几周后,由于系统内存不足,Linux系统开始出现问题.事情开始放缓.再过几个小时之后,Java进程就被杀死了.
经过几个月的分析,并试图弄清楚这一点,我们仍然在亏损.我觉得很难找到关于这个问题的信息,因为大多数讨论最终解释堆或其他非堆内存池. (如Metaspace等)
我的问题如下:
>如果你打破它,java进程使用的内存包括什么? (除堆和非堆内存池之外)
>哪些其他潜在的来源有内存泄漏? (本机代码?JVM开销?)哪些是一般的,最可能的罪魁祸首?
>如何一个监视器/配置文件这个内存?堆堆之外的所有东西目前对我们来说都是一个黑匣子.
任何帮助将不胜感激.
java为什么内存会无限增大_Java进程的内存无限增长,但是MemoryMXBean报告稳定堆和非堆大小...相关推荐
- java堆和非堆_java 堆与非堆 内存
堆(Heap)和非堆(Non-heap)内存 按照官方的说法:"Java 虚拟机具有一个堆,堆是运行时数据区域,所有类实例和数组的内存均从此处分配.堆是在 Java 虚拟机启动时创建的.&q ...
- java内存溢出怎么排查_java线上内存溢出问题排查步骤
一般线上遇到比较头疼的就是OOM内存溢出问题,我们都会先看错误日志,如果错误日志能够定位出哪个类对象导致内存溢出,那么我们只需要针对问题修改bug就好.但是很多时候我们单凭日志无法定位出内存溢出问题, ...
- aix查看oracle进程内存使用情况,AIX 查看进程的内存使用情况
svmon-P命令显示系统上当前正在运行的所有进程的内存使用情况统计信息. 下面是 svmon -P 命令的示例: # svmon -P ------------------------------- ...
- 内存分配的原理__进程分配内存有两种方式,分别由两个系统调用完成:brk和mmap(不考虑共享内存)
如何查看进程发生缺页中断的次数? 用ps -o majflt,minflt -C program命令查看. majflt代表major fault,中文名叫大错误,minflt代表minor faul ...
- java堆与非堆的一些研究_堆和堆傻傻分不清?一文告诉你 Java 集合中「堆」的最佳打开方式...
什么是堆? 堆其实就是一种特殊的队列--优先队列. 普通的队列游戏规则很简单:就是先进先出:但这种优先队列搞特殊,不是按照进队列的时间顺序,而是按照每个元素的优先级来比拼,优先级高的在堆顶. 这也很容 ...
- 我的世界java占用太多内存_Java 进程占用内存过多,幕后元凶原来是线程太多
那天中午吃饭,一个同事说,那个项目组的人快气死我了,程序有问题,早晨在群里@了他们,到中午才回消息,然后竟然还说他们的程序没有问题,是我们这边调用的太频繁了. 简直想笑. 背景说明 我们当前这个系统和 ...
- java接口经常变动前端怎么办_Java进程故障排查(CPU资源占用高,接口响应超时,功能接口停滞等)...
故障分析 # 导致系统不可用情况(频率较大): 1)代码中某个位置读取数据量较大,导致系统内存耗尽,进而出现Full GC次数过多,系统缓慢: 2)代码中有比较消耗CPU的操作,导致CPU过高,系统运 ...
- java远程调试挂起线程_java进程的远程调试
一.jdb调试 mqbroker(jvm参数配置) 2.利用jdb/idea/eclipse 远程调试,同本地调试一样 二.jvisualvm jvm 监视 使用jstatd连接 nohup $JAV ...
- linux进程的内存空间,Linux进程内存统计
一. 进程内存统计 cat /proc/[pid]/status 通过/proc/[pid]/status可以查看进程的内存使用情况,包括虚拟内存大小(VmSize),物理内存大小(VmRSS),数据 ...
最新文章
- List集合的迭代器方法
- 人生苦短,开发用云 | 如何优雅完成程序员的侠客梦?
- php 表单录入,PHP 表单和用户输入
- c#与mysql数据库连接以及.net framework版本修改问题
- STIMULUS(二) —— Hello, Stimulus
- [渝粤题库]陕西师范大学《幼儿园语言教育》作业
- 浅谈堆栈问题-C++
- 2014年度总结——程序员生涯的开启
- 基于SpringCloud开发的分布式系统,遇到爬虫、接口盗刷怎么办?
- mysql 全连接_mysql 实现全连接
- android 3gpp 播放,Android Market:MoboPlayer 最強悍的免費影片播放程式
- Linux V4L2驱动框架分析之(一):架构介绍
- C语言必背18个经典程序
- 安卓初级开发教程 ppt+视频+案例源码
- #pragma comment
- Android项目:基于安卓Android校园零食配送系统app(计算机毕业设计)
- ANDROID内存优化(大汇总——全)
- Java计算机毕业设计腾讯网游辅助小助手源码+系统+数据库+lw文档
- NOI 1789:算24
- C#,图像二值化(16)——全局阈值的力矩保持算法(Moment-proserving Thresholding)及其源代码