Docker: как распечатать информацию о памяти jvm при запуске журналов докера - PullRequest
0 голосов
/ 17 октября 2019

Я использую приложение Java Spring-Boot, работающее на Docker.

В моем файле Docker , я использую Entrypoint .

Очевидно, я использовал это так:

ENTRYPOINT ["java","-Dfile.encoding=utf-8", "-XX:+ExitOnOutOfMemoryError","-Xms256m","-Xmx256m", "-XshowSettings:vm","-jar","/opt/myapp.jar", "--spring.profiles.active=server"]

Примерно так, когда запускается контейнер: он отображает такие значения при запуске docker logs:

VM settings:
    Min. Heap Size: 256.00M
    Max. Heap Size: 256.00M
    Ergonomics Machine Class: client
    Using VM: OpenJDK 64-Bit Server VM


  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v1.3.0.RELEASE)

Но снебольшое преобразование в формат точки входа (чтобы ввести некоторые переменные):

ENTRYPOINT java -jar /opt/myapp.jar -Dfile.encoding=utf-8 -XX:+ExitOnOutOfMemoryError -Xms=${XMS_VALUE} -Xmx=${XMX_VALUE} -XshowSettings:vm -XX:+PrintFlagsFinal --spring.profiles.active=server

Это скрывает значения jvm и отображает только весеннюю диаграмму:

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v1.3.2.RELEASE)

Как я могупусть появится снова ??

1 Ответ

0 голосов
/ 18 октября 2019

Порядок JVM параметров и аргументов важен. Использование:

 java [options] -jar <jarfile> [args...]
           (to execute a jar file)

, поэтому опции JVM должны быть помещены перед опцией -jar, в противном случае они считаются аргументами приложения

ENTRYPOINT java -Dfile.encoding=utf-8 -XX:+ExitOnOutOfMemoryError \
    -Xms${XMS_VALUE} -Xmx${XMX_VALUE} \
    -XshowSettings:vm -XX:+PrintFlagsFinal -XshowSettings:vm \
    -jar /opt/myapp.jar --spring.profiles.active=server

Запустите его с помощью:

docker run -e XMX_VALUE=256M -e XMS_VALUE=256m <image_name>
...