Получение только четверти памяти, выделенной через app.yaml - PullRequest
0 голосов
/ 26 июня 2018

Мы запускаем установку java8 / jetty9 на appengine flex.В app.yaml мы выделили 30 ГБ оперативной памяти.Однако на сервере, когда мы вызываем Runtime.getRuntime().maxMemory(), возвращаемое число составляет ~ 7G.Если я увеличу ОЗУ до 60G, это число увеличится до ~ 15G.Похоже, что JVM получает только четверть оперативной памяти, выделенной в app.yaml.

Я также попытался запустить сервер с параметром -Xmx30g

Однако загрузка сервера завершилась ошибкой

Недостаточно памяти для продолжения среды выполнения Java.

При выделении собственной памяти (mmap) не удалось сопоставить 7158235136 байт для фиксации зарезервированной памяти.

Ошибка, подтверждающая то, что мы видели с Runtime.getRuntime().maxMemory, что существует ограничение ~ 7G, когда мы выделили 30G RAM.Куда идут остальные 75% распределения?

Вот Dockerfile


    FROM gcr.io/google-appengine/jetty9
    RUN apt-get -q update && \
        apt-get -y -q --no-install-recommends -t jessie-backports install 
    openjdk-8-jdk && \
        apt-get -y -q --no-install-recommends install ssh sshpass && \
        apt-get clean && \
        rm /var/lib/apt/lists/*_*
    ADD backend.war $JETTY_BASE/webapps/root.war
    WORKDIR $JETTY_BASE
    RUN java -jar -Xmx30g -Xms20g $JETTY_HOME/start.jar --approve-all-licenses \
       --add-to-startd=jmx,stats,hawtio,requestlog \
       -Djava.util.logging.config.file=src/main/appengine/logging.properties \
       && chown -R jetty:jetty $JETTY_BASE

Вот app.yaml


    runtime: custom
    threadsafe: true
    env: flex

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

    health_check:
      enable_health_check: True
      check_interval_sec: 5
      timeout_sec: 4
      unhealthy_threshold: 2
      healthy_threshold: 2

    resources:
      cpu: 6
      memory_gb: 30
      disk_size_gb: 20
    automatic_scaling:
      min_num_instances: 1
      max_num_instances: 3
      cool_down_period_sec: 120
      cpu_utilization:
        target_utilization: 0.5

1 Ответ

0 голосов
/ 28 июня 2018

 env_variables:
  JAVA_OPTS: "-Xmx16g"

Добавление вышеупомянутого в app.yaml добилось цели ...

...