java没有释放内存_java – G1年轻的GC没有释放内存 – 空间耗尽
我正在使用G1GC,jdk 1.7
Java HotSpot(TM) 64-Bit Server VM (24.79-b02) for linux-amd64 JRE (1.7.0_79-b15), built on Apr 10 2015 11:34:48 by "java_re" with gcc 4.3.0 20080428 (Red Hat 4.3.0-8)
Memory: 4k page, physical 32826020k(12590436k free), swap 33431548k(33358800k free)
CommandLine flags: -XX:AutoBoxCacheMax=3000000 -XX:+DisableExplicitGC
-XX:G1NewSizePercent=20 -XX:+HeapDumpOnOutOfMemoryError -XX:InitialHeapSize=10737418240
-XX:InitiatingHeapOccupancyPercent=70 -XX:MaxDirectMemorySize=1073741824 -XX:MaxGCPauseMillis=1000
-XX:MaxHeapSize=10737418240
-XX:-OmitStackTraceInFastThrow -XX:+PrintGC -XX:+PrintGCApplicationStoppedTime -XX:+PrintGCDetails
-XX:+PrintGCTimeStamps -XX:+UnlockExperimentalVMOptions
-XX:+UseCompressedOops -XX:+UseG1GC
大多数小型GC工作正常,但它仍然开始不寻常的fullGC,大约一小时一到两次.
这是年轻GC日志的正常情况
3443.100: [GC pause (young), 0.3021260 secs]
[Parallel Time: 277.6 ms, GC Workers: 4]
[GC Worker Start (ms): Min: 3443100.5, Avg: 3443100.6, Max: 3443100.6, Diff: 0.1]
[Ext Root Scanning (ms): Min: 2.9, Avg: 3.0, Max: 3.1, Diff: 0.2, Sum: 11.9]
[Update RS (ms): Min: 33.5, Avg: 33.6, Max: 33.9, Diff: 0.4, Sum: 134.5]
[Processed Buffers: Min: 180, Avg: 204.8, Max: 227, Diff: 47, Sum: 819]
[Scan RS (ms): Min: 76.0, Avg: 76.2, Max: 76.3, Diff: 0.3, Sum: 304.9]
[Code Root Scanning (ms): Min: 0.0, Avg: 0.1, Max: 0.1, Diff: 0.1, Sum: 0.3]
[Object Copy (ms): Min: 164.4, Avg: 164.4, Max: 164.5, Diff: 0.1, Sum: 657.7]
[Termination (ms): Min: 0.0, Avg: 0.0, Max: 0.0, Diff: 0.0, Sum: 0.0]
[GC Worker Other (ms): Min: 0.0, Avg: 0.0, Max: 0.1, Diff: 0.0, Sum: 0.2]
[GC Worker Total (ms): Min: 277.3, Avg: 277.4, Max: 277.4, Diff: 0.1, Sum: 1109.5]
[GC Worker End (ms): Min: 3443377.9, Avg: 3443378.0, Max: 3443378.0, Diff: 0.0]
[Code Root Fixup: 0.2 ms]
[Code Root Migration: 0.3 ms]
[Clear CT: 2.0 ms]
[Other: 22.1 ms]
[Choose CSet: 0.0 ms]
[Ref Proc: 15.7 ms]
[Ref Enq: 0.5 ms]
[Free CSet: 3.2 ms]
[Eden: 5996.0M(5996.0M)->0.0B(5648.0M) Survivors: 148.0M->196.0M Heap: 8934.5M(10.0G)->2997.2M(10.0G)]
[Times: user=1.13 sys=0.00, real=0.30 secs]
这是fullGC之前的一个不寻常的GC日志.
它重复了两到三次,并没有清理任何记忆.
3482.422: [GC pause (young) (to-space exhausted), 3.4878580 secs]
[Parallel Time: 1640.5 ms, GC Workers: 4]
[GC Worker Start (ms): Min: 3482421.8, Avg: 3482422.4, Max: 3482424.0, Diff: 2.2]
[Ext Root Scanning (ms): Min: 2.1, Avg: 3.2, Max: 3.8, Diff: 1.7, Sum: 12.6]
[Update RS (ms): Min: 104.8, Avg: 105.2, Max: 105.6, Diff: 0.8, Sum: 421.0]
[Processed Buffers: Min: 201, Avg: 221.2, Max: 236, Diff: 35, Sum: 885]
[Scan RS (ms): Min: 75.1, Avg: 75.2, Max: 75.3, Diff: 0.1, Sum: 300.8]
[Code Root Scanning (ms): Min: 0.0, Avg: 0.1, Max: 0.1, Diff: 0.1, Sum: 0.2]
[Object Copy (ms): Min: 1455.9, Avg: 1456.1, Max: 1456.2, Diff: 0.3, Sum: 5824.2]
[Termination (ms): Min: 0.0, Avg: 0.1, Max: 0.2, Diff: 0.2, Sum: 0.4]
[GC Worker Other (ms): Min: 0.0, Avg: 0.0, Max: 0.0, Diff: 0.0, Sum: 0.1]
[GC Worker Total (ms): Min: 1638.2, Avg: 1639.8, Max: 1640.4, Diff: 2.2, Sum: 6559.3]
[GC Worker End (ms): Min: 3484062.2, Avg: 3484062.2, Max: 3484062.2, Diff: 0.0]
[Code Root Fixup: 0.2 ms]
[Code Root Migration: 0.5 ms]
[Clear CT: 2.0 ms]
[Other: 1844.7 ms]
[Choose CSet: 0.0 ms]
[Ref Proc: 60.1 ms]
[Ref Enq: 0.5 ms]
[Free CSet: 1.2 ms]
[Eden: 5648.0M(5648.0M)->0.0B(1876.0M) Survivors: 196.0M->172.0M Heap: 9441.9M(10.0G)->9352.3M(10.0G)]
[Times: user=9.29 sys=0.05, real=3.49 secs]
然后它开始了一个fullGC
3490.812: [Full GC 9626M->1879M(10G), 7.6059670 secs]
[Eden: 0.0B(2048.0M)->0.0B(6144.0M) Survivors: 0.0B->0.0B Heap: 9626.3M(10.0G)->1879.5M(10.0G)], [Perm: 33901K->33901K(36864K)]
[Times: user=10.24 sys=0.00, real=7.61 secs]
为什么最后一个youngGC没有清理任何内存?
java没有释放内存_java – G1年轻的GC没有释放内存 – 空间耗尽相关推荐
- java共享内存_Java进程通信之映像文件共享内存
Java进程通信之映像文件共享内存 1. 共享内存 vs 进程通信 对UNIX系统来说,共享内存分为一般共享内存和映像文件共享内存两种.但windows实际上只有影像文件共享内存一种. 而说到进程通信 ...
- idea 设置java内存_java相关:IntelliJ IDEA设置显示内存指示器和设置内存大小的方法...
java相关:IntelliJ IDEA设置显示内存指示器和设置内存大小的方法 发布于 2020-7-4| 复制链接 摘记: 一.设置显示内存指示器idea默认情况下,是不显示当前内存使用情况的,可以 ...
- JVM(Java虚拟机)详解(JVM 内存模型、堆、GC、直接内存、性能调优)
JVM(Java虚拟机) JVM 内存模型 结构图 jdk1.8 结构图(极简) jdk1.8 结构图(简单) JVM(Java虚拟机): 是一个抽象的计算模型. 如同一台真实的机器,它有自己的指令集 ...
- java痴和堆_JAVA虚拟机理解 - 爱笑的痴迷者的个人空间 - OSCHINA - 中文开源技术交流社区...
JVM定义: JVM(Java Virtual Machine),是一种运行Java程序的软件实现,是虚拟的机器.Java程序与平台无关,它直接在虚拟机中运行. JVM运行过程: JVM将内存分划如下 ...
- java 及时释放内存_Java 等语言的 GC 为什么不实时释放内存?
最基本的纯引用计数方式的自动内存管理可以做到实时释放死对象,但却无法处理存在循环引用的对象图的释放.这个问题一定程度上可以通过引入弱引用的概念来解决,但通用的能处理带循环引用对象图的引用计数都是有别的 ...
- java eclipse 内存_java – Eclipse 3.5.1使用大量内存
我已经迁移到Eclipse 3.5.1并且观察到它在执行清洁构建时需要560 MB.使用后内存不会被收集.它保持这样. 对此有何解决方案? JVM:jdk1.6.0_17 Windows XP, 2G ...
- java final的内存_Java并发编程之final域的内存语义
一.final域的重排序规则 对于final域,编译器和处理器要遵循两个重拍序规则: 1.在构造函数内对一个final域的写入,与随后把这个被构造对象的引用赋值给一个引用变量,这两个操作之间不能重排序 ...
- java释放锁_java – 一个线程在完成后释放锁吗?
简单测试可能会显示在线程终止时未释放锁定: import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.Lock ...
- Java吃CPU还是内存_Java中的CPU占用高和内存占用高的问题排查
下面通过模拟实例分析排查Java应用程序CPU和内存占用过高的过程.如果是Java面试,这2个问题在面试过程中出现的概率很高,所以我打算在这里好好总结一下. 1.Java CPU过高的问题排查 举个例 ...
最新文章
- [20160910]低级错误.txt
- Puppet之简单安装Nginx
- python中一共有多少个关键字-Python 为什么会有命名关键字参数?
- redis 缓存过期默认时间_过期redis时间
- 14_pytorch.where,pytorch.gather
- gcc代码反汇编查看内存分布[2]: arm-linux-gcc
- Bash脚本教程之行操作
- [免费]开源制衣公司网站源程序 (三)!
- Numpy根据某一列进行排序
- C#中,两个事件的叠加,结果会如何?
- 减小数据泄密负面影响的办法
- 开源生产排程aps(Advanced Planning and Scheduling)软件介绍
- Lumion 9.0 动画渲染的10个技术技巧
- spring深入学习(十九) IOC 之 Factory 实例化 bean
- FACES纳新|2021春纳线上分享会等你来
- 4G模块SIM7600绑定AT指定串口号(二)
- WebStorm2016.2 注册码及激活,2018.6.14亲测有效
- 如何在VMware上快速安装ROS
- 如何查看某个网站的ip地址(根据域名怎么知道IP)
- 解决asp.net FileUpload控件无法获取完整路径的问题 - 无序修改浏览器参数
热门文章
- 一文了解 ng-template, ng-content, ng-container, 和 *ngTemplateOutlet的区别
- SAP云平台开启Kyma功能时发送到后台的HTTP请求
- 在SAP WebClient UI里使用AJAX进行异步数据读取
- Eclipse卸载Groovy Development tool时,为什么要去查询hana.ondemand.com的资源?
- SAP GUI和Windows注册表
- sap.ca.scfld.md.ComponentBase.extend
- SAP UI5 scroll down to get more
- How is note created - SAP backend implementation
- 处理SAP Netweaver gateway service使用过程中遇到的404 error
- 推荐一个好用的Chrome扩展应用,管理新建标签页面的