我使用spring-boot2。如果我这样做:
export _JAVA_OPTIONS = -Xmx756m
然后:
java -XX:+ PrintFlagsFinal -version | grep -iE 'HeapSize | PermSize | ThreadStackSize'
intx CompilerThreadStackSize = 0 {pd product}
uintx ErgoHeapSizeLimit = 0 {product}
uintx HeapSizePerGCThread = 87241520 {product}
uintx InitialHeapSize := 16777216 {product}
uintx LargePageHeapSizeThreshold = 134217728 {product}
uintx MaxHeapSize := 792723456 {product}
intx ThreadStackSize = 1024 {pd product}
intx VMThreadStackSize = 1024 {pd product}
但是如果我重新加载控制台。 MaxHeapSize被重置。
它什么都没有改变:
java -XshowSettings:all
VM settings:
Max. Heap Size (Estimated): 237.81M
Ergonomics Machine Class: client
Using VM: OpenJDK 64-Bit Server VM
如果我这样做:
nohup java -Dspring.profiles.active=dev -Xmx660m -jar /home/ec2-user/project.jar >test.out 2>&1 &
in text.out:
nohup: ignoring input
VM settings:
Max. Heap Size: 660.00M
Ergonomics Machine Class: client
Using VM: OpenJDK 64-Bit Server VM
但是,如果我手动输入java -XshowSettings:all
,则没有任何变化:
VM settings:
Max. Heap Size (Estimated): 237.81M
Ergonomics Machine Class: client
Using VM: OpenJDK 64-Bit Server VM
和:
uintx MaxHeapSize := 257949696 {product}
总内存:1gb
答案 0 :(得分:1)
但是如果我重新加载控制台。 MaxHeapSize被重置。
这不是JVM的工作方式。为了获得与内存相关的更改,必须重新启动Java程序。 无法即时应用jvm设置