Docker 在java版本为1.8.0282的容器上设置MaxRAMPercentage

Docker 在java版本为1.8.0282的容器上设置MaxRAMPercentage,docker,kubernetes,dockerfile,amazon-cloudformation,Docker,Kubernetes,Dockerfile,Amazon Cloudformation,我与Docker和Kubernetes在AWS(cloudformation yaml)上合作 亚马尔 Dockerfile FROM amazonlinux:latest RUN yum -y install java-1.8.0 EXPOSE 8103 ADD myapp.jar ENTRYPOINT ["java","-XX:MinRAMPercentage=50.0","-XX:MaxRAMPercentage=80.0",&q

我与Docker和Kubernetes在AWS(cloudformation yaml)上合作

亚马尔

Dockerfile

FROM amazonlinux:latest
RUN yum -y install java-1.8.0
EXPOSE 8103
ADD myapp.jar
ENTRYPOINT ["java","-XX:MinRAMPercentage=50.0","-XX:MaxRAMPercentage=80.0","-jar","myapp.jar"]
接下来,您可以从我的pod的bash中找到java“1.8.0282”的版本

bash-4.2# java -XX:+PrintFlagsFinal  -version | grep -iE 'HeapSize|PermSize|ThreadStackSize'
 intx CompilerThreadStackSize                   = 0                                   {pd product}
uintx ErgoHeapSizeLimit                         = 0                                   {product}
uintx HeapSizePerGCThread                       = 87241520                            {product}
uintx InitialHeapSize                          := 67108864                            {product}
uintx LargePageHeapSizeThreshold                = 134217728                           {product}
uintx MaxHeapSize                              := 1073741824                          {product}
 intx ThreadStackSize                           = 1024                                {pd product}
 intx VMThreadStackSize                         = 1024                                {pd product}
openjdk version "1.8.0_282"
OpenJDK Runtime Environment (build 1.8.0_282-b08)
OpenJDK 64-Bit Server VM (build 25.282-b08, mixed mode)
我读到这篇文章时,作者解释说“如果您运行的是Java 8 update 191或更高版本,或者Java 10、11、12、13等,您不能使用UseCGroupMemoryLimitForHeap选项。相反,您应该使用默认激活的UseContainersSupport。”

因此,我在入口点指令中添加了选项“-XX:MinRAMPercentage=50.0”,““-XX:MaxRAMPercentage=80.0”

ENTRYPOINT ["java","-XX:MinRAMPercentage=50.0","-XX:MaxRAMPercentage=80.0","-jar","myapp.jar"]
不幸的是,我的pod上的UseContainerSupport值没有更改,您可以在下面看到

bash-4.2# java -XX:+PrintFlagsFinal  -version | grep -E "UseContainerSupport | InitialRAMPercentage | MaxRAMPercentage | MinRAMPercentage"
double InitialRAMPercentage                      = 1.562500                            {product}
double MaxRAMPercentage                          = 25.000000                           {product}
double MinRAMPercentage                          = 50.000000                           {product}
  bool UseContainerSupport                       = true                                {product}
openjdk version "1.8.0_282"
OpenJDK Runtime Environment (build 1.8.0_282-b08)
OpenJDK 64-Bit Server VM (build 25.282-b08, mixed mode)
我还尝试在YAML中添加JAVA_选项,如下所示,但没有任何变化

env:
  - name: JAVA_OPTS
    value: "-XX:MinRAMPercentage=50.0 -XX:MaxRAMPercentage=80.0" 
最后一个问题是:-)

如何以及在何处设置-XX:MinRAMPercentage和-XX:MaxRAMPercentage选项以修改MaxRAMPercentage的默认值?我想使用3Gi的4Gi专用内存(在yaml上)


多亏了大家

据我所知,
JAVA_选项
更像是一种惯例,而
JAVA_工具选项
;也许试试那个?至于你所问的实际内存旋钮,很抱歉,我没有更多的见解
env:
  - name: JAVA_OPTS
    value: "-XX:MinRAMPercentage=50.0 -XX:MaxRAMPercentage=80.0"