如何在灵活的GAE应用程序中正确设置JVM选项

时间:2018-04-02 23:15:49

标签: java google-app-engine jvm jetty heap

以下是我的app.yaml文件,用于GAE灵活的Java 8 / Jetty应用程序。

runtime: java
env: flex
manual_scaling:
  instances: 1

runtime_config:  # Optional
  jdk: openjdk8
  server: jetty9

resources:
  cpu: 2
  memory_gb: 4.0

env_variables:
  JAVA_HEAP_OPTS: -Xms3072M -Xmx3072M

health_check:
  enable_health_check: False

handlers:
- url: /.*
  script: this field is required, but ignored

出于某种原因,在部署应用程序时不使用JAVA_HEAP_OPTS值。至少我不认为它被使用,因为当我SSH到docker容器并运行以下命令时,内存值要小得多。

java -XX:+PrintFlagsFinal -version | grep -iE 'HeapSize|PermSize|ThreadStackSize'

有人可以告诉我发生了什么事或我需要采取哪些不同的做法?

由于

1 个答案:

答案 0 :(得分:0)

该变量仅应用于作为docker容器的入口点运行的Java进程。

JAVA_HEAP_OPTS不是一个神奇的环境变量,可以自动全局应用于docker容器内Java的任意随机执行。难怪为什么在启动自己独立的Java进程时看不到任何影响。

查看以下代码,您将了解它的工作原理: