java-XX :-UseAdaptiveSizePolicy is not effective

标签 java jvm

我想通过jinfo修改最大堆大小。

jinfo -flag MaxHeapSize=3122032640 <pid>

由于AdaptiveSizePolicy默认启用,直接修改标志将导致异常。因此,我在进程开始时禁用了 AdaptiveSizePolicy。

java -XX:-UseAdaptiveSizePolicy Sleep.java

我也可以通过jinfo得到正确的结果

jinfo -flag UseAdaptiveSizePolicy 18220

-XX:-UseAdaptiveSizePolicy

但是当我再次通过jinfo修改最大堆内存时,仍然会出现异常。

jinfo -flag MaxHeapSize=3122032640 18220

Exception in thread "main" com.sun.tools.attach.AttachOperationFailedException: flag 'MaxHeapSize' cannot be changed
    at jdk.attach/sun.tools.attach.VirtualMachineImpl.execute(VirtualMachineImpl.java:224)
    at jdk.attach/sun.tools.attach.HotSpotVirtualMachine.executeCommand(HotSpotVirtualMachine.java:309)
    at jdk.attach/sun.tools.attach.HotSpotVirtualMachine.setFlag(HotSpotVirtualMachine.java:282)
    at jdk.jcmd/sun.tools.jinfo.JInfo.flag(JInfo.java:146)
    at jdk.jcmd/sun.tools.jinfo.JInfo.main(JInfo.java:127)

貌似-XX:-UseAdaptiveSizePolicy没有效果。

有人知道原因吗

I know the -Xmx flag to set the maximum heap size.

JDK:openjdk 13.0.1

操作系统:Ubuntu 18.04

虚拟机标志:
-XX:CICompilerCount=3 -XX:ConcGCThreads=1 -XX:G1ConcRefinementThreads=4 -XX:G1HeapRegionSize=1048576 -XX:GCDrainStackTargetSize=64 -XX:InitialHeapSize=134217728 -XX:MarkStackSize=4194304 -XX:MaxHeapSize=536870912 - XX :MaxNewSize=321912832 -XX:MinHeapDeltaBytes=1048576 -XX:MinHeapSize=134217728 -XX:NonNMethodCodeHeapSize=5830732 -XX:NonProfiledCodeHeapSize=122913754 -XX:ProfiledCodeHeapSize=122913754 -XX:ReservedCode CacheSize=251658240 -XX:+SegmentedCodeCache -XX:SoftMaxHeapSize= 536870912 -XX:-UseAdaptiveSizePolicy -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:+UseFastUnorderedTimeStamps -XX:+UseG1GC

最佳答案

I want to modify the maximum heap size through jinfo.

这是不可能的。 MaxHeapSize 不是可管理的标志,它无法在运行时更改。

-XX:UseAdaptiveSizePolicy 标志是完全不同的东西。如果配置 GC 是否可以根据 GC 统计数据调整堆代大小,以实现暂停/吞吐量/占用空间目标。

关于java-XX :-UseAdaptiveSizePolicy is not effective,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59751260/

相关文章:

java - OptaPlanner:java.lang.IllegalArgumentException

java - 如何在 jruby 上优化 rails 项目?

java - JVM 的功能/不可变数据结构?

java - Solr 排序问题

java - 为什么java中Object.equals(Object o)需要Object.hashCode()?

java - 如何使用 selenium webdriver 和 java 通过匹配文本模式从下拉列表中选择选项

java - 动态内存释放中的完全垃圾收集是什么意思?

java - Windows 7 上的 JVM 核心转储文件位于何处?

java - Android 设备监视器无法在 Ubuntu 中启动

java - 在本地而非远程收集 Tomcat 统计信息