我无法在Java

时间:2019-05-24 08:17:04

标签: java linux amazon-ec2 jvm

我使用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

1 个答案:

答案 0 :(得分:1)

  

但是如果我重新加载控制台。 MaxHeapSize被重置。

这不是JVM的工作方式。为了获得与内存相关的更改,必须重新启动Java程序。 无法即时应用jvm设置