Comments (7)
谢谢这位同学的关注。
- TencentKona-11暂时还没有这个功能,后续会考虑加上去。
- 目前在开源的tencentKona-8里面已经针对ps,cms和g1实现了这个功能,但是默认关闭,需要加参数开启,使用方法和参数说明如下:
2.1 在启动参数里添加-XX:+FreeHeapPhysicalMemory,针对PS,CMS和G1算法,则在触发FullGC(G1算法除了FullGC,还包括concurrent cycle)后,JVM会释放没有对象的old区的后半部分虚拟地址空间对应的物理内存(G1算法则会有选择的释放部分没有任何对象的region对应的物理内存)。这个参数开启的情况下,还可以分别配合以下两个参数来实现根据load(2.2所描述)和定时强制触发(2.3所描述)FullGC的功能来实现物理内存回收。
2.2 在FreeHeapPhysicalMemory开启的情况下,如果在启动参数里面指定 -XX:PeriodicGCInterval=x(单位是ms)的话,则JVM会每隔5min,自动判断当前进程的load,如果连续3次低于该进程load的P99的话,则会自动触发一次FullGC进行物理内存回收,PeriodicGCInterval时间间隔内最多只会触发一次FullGC,默认PeriodicGCInterval=0,表示这个功能默认是关闭的,此外,load的衡量方式是ygc的频率,也就是说ygc的频率足够低的话,而且距离上一次Ful GC的时间间隔超过PeriodicGCInterval的话,jvm会自动触发Full GC来回收物理内存。
2.3 在FreeHeapPhysicalMemory参数开启的情况下,kona jdk8里面还添加了一个定时触发FullGC的功能,如果设置ForcePeriodicGCInterval=x(单位为ms),那么每隔x ms,就会触发一次FullGC。
综上所述,如果只是需要FullGC后回收物理内存功能,那么在进程的启动参数添加-XX:+FreeHeapPhysicalMemory即可,如果需要在系统load的低的时候自动触发FullGC回收物理内存,那么需要再配置下PeriodicGCInterval。定期触发FullGC来回收物理内存回收,这个是针对大数据离线任务设计的功能,游戏场景不一定适合,建议不要配置,直接默认关闭即可。
from tencentkona-11.
不错,支持做的更加彻底,自己FULLGC的定时脚本都免了
from tencentkona-11.
其实不能理解为什么这样一个功能,openjdk却不考虑呢?
不知道是出于什么样的考虑,才会忽略这样一个功能.
既然能申请堆外内存,就不让释放.
是不是openjdk最开始没有想过开放堆外内存的功能呢?
毕竟这个功能使用很复杂.
unsafe.
from tencentkona-11.
其实不能理解为什么这样一个功能,openjdk却不考虑呢?
不知道是出于什么样的考虑,才会忽略这样一个功能.
既然能申请堆外内存,就不让释放.
是不是openjdk最开始没有想过开放堆外内存的功能呢?
毕竟这个功能使用很复杂.
unsafe.
from tencentkona-11.
Tencent Kona JDK 11.0.14已支持该特性,通过-XX:+FreeHeapPhysicalMemory 打开这个特性
from tencentkona-11.
无进一步需求,关闭该issue
from tencentkona-11.
ForcePeriodicGCInterval
试了下ForcePeriodicGCInterval无效,-XX:+FreeHeapPhysicalMemory -XX:ForcePeriodicGCInterval=60000,预期是一分钟一次FULLGC 但发现没有触发,从启动时的FGC @3次一直没有增加上去, @wattsun110
from tencentkona-11.
Related Issues (20)
- 为啥3月8日宣布的开源,但是代码提交的最后日期是四个月前呢 HOT 1
- cannot load jars of spring-* under lib/ dir HOT 3
- mac m1 arm 的呢? HOT 2
- Kona Fiber没有包含在开源里面吗? HOT 1
- Pushed to the SDKMan? HOT 2
- Vector API document HOT 1
- 如何基于该版本jdk实现springboot应用的APPCDS HOT 2
- Should update the supported platforms in README HOT 1
- 如何方便地调试虚拟线程? HOT 1
- JEP346-立即从 G1 返回未使用的已提交内存功能咨询 HOT 3
- 请问下jdk都是gpl,我要是用着商用得话,需要把我得jar/war都给客户不 HOT 1
- 是否支持 native方法 调度
- -XX:+FreeHeapPhysicalMemory 既然也支持了,能否把-XX:PeriodicGCInterval -XX:ForcePeriodicGCInterval 也考虑支持一下呢 HOT 3
- 无法开启ZGC? HOT 4
- Is there a windows/mac build? HOT 2
- Is there a clear support time for kona 11? HOT 2
- Ambiguous file name HOT 2
- 软件开源-配套文档的问题 HOT 2
- 开启调试模式的时候,监听的ip不对 HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from tencentkona-11.