为什么jvm一直在增加而没有收缩,即使有-XX:MaxHeapFreeRatio jvm参数

0ejtzxu1  于 10个月前  发布在  其他
关注(0)|答案(1)|浏览(115)


的数据
从jmap结果中我们可以看到,空闲堆大小(高达90%)超过了MaxHeapFreeRatio(40%),但是jvm仍然没有缩小。
这是JVM信息:www.example.com = OpenJDK 64位服务器VM java. vm. version = 25.352-b1 java. runtime. version = 1.8.0_352-b1
VM标志:非默认VM标志:- XX:CICompilerCount = 2-XX:CompressedClassSpaceSize = 1065353216-XX:ConcGCThreads = 1-XX:G1HeapRegionSize = 1048576-XX:+ HeapDumpOnOutOfMemoryError-XX:HeapDumpPath = null-XX:InitialHeapSize = 2577399808-XX:InitialRAMPercentage = null-XX:MarkStackSize = 4194304-XX:MaxHeapFreeRatio = 40-XX:MaxHeapSize = 6014631936-XX:MaxMetaspaceSize = 1073741824-XX:MaxNewSize = 3608150016-XX:MaxRAMPpercentage = null-XX:MetaspaceSize = 536870912-XX:MinHeapDeltaBytes = 1048576-XX:MinHeapFreeRatio = 20-XX:MinRAMPercentage = null-XX:+ PrintGC-XX:+ PrintGCDateStamps-XX:+ PrintGCDetails-XX:+ PrintGCTimeStamps-XX:存活率= 6-XX:+ UseAdaptiveSizePolicy-XX:+ UseCompressedClassPointers-XX:+ UseCompressedOops-XX:+ UseContainerSupport-XX:+使用G1GC-XX:+使用UTF8UTF16内部
命令行:- Duser timezone = GMT +8-Dfile。encoding = utf-8-XX:+ UseContainerSupport-XX:InitialRAM百分比= 30.0-XX:MinRAM百分比= 70.0-XX:MaxRAM百分比= 70.0-XX:+ UseAdaptiveSizePolicy-XX:MaxHeapFreeRatio = 40-XX:MinHeapFreeRatio = 20-XX:+使用G1GC-XX:+ HeapDumpOnOutOfMemoryError-XX:HeapDumpPath =/logs/my-heap-dump。hprof-XX:存活率= 6-XX:元空间大小= 512m-XX:MaxMetaspaceSize = 1024m-Xloggc:/logs/gc.log-XX:+ PrintGCDetails-XX:+ PrintGCDateStamps-Djava.安全egd =文件:/dev/。/urandom

  • XX:+UseAdaptiveSizePolicy-XX:MaxHeapFreeRatio = 40-XX:MinHeapFreeRatio = 20
    有了这些论点,我认为jvm应该根据堆思想内存动态收缩。
pprl5pva

pprl5pva1#

MaxHeapFreeRatio不会立即执行,以避免在突发工作负载中快速分配和释放堆,您可以添加ShrinkHeapInSteps以更积极地应用限制。
如果这不起作用,您应该查看gc日志中的自适应大小调整策略决策。

相关问题