From a33256c327b41f335343d96865f18bfbb2bce68e Mon Sep 17 00:00:00 2001 From: Paolo Carta Date: Tue, 14 Aug 2018 11:17:38 +0200 Subject: [PATCH 1/4] increasing resources limits and limiting heap size due to the fact java 8 is not docker aware --- packs/gradle/Dockerfile | 2 +- packs/gradle/charts/values.yaml | 6 +++--- packs/maven/Dockerfile | 3 ++- packs/maven/charts/values.yaml | 6 +++--- 4 files changed, 9 insertions(+), 8 deletions(-) diff --git a/packs/gradle/Dockerfile b/packs/gradle/Dockerfile index 9167dbc..a0e0620 100644 --- a/packs/gradle/Dockerfile +++ b/packs/gradle/Dockerfile @@ -3,4 +3,4 @@ ENV PORT 8080 EXPOSE 8080 COPY build/libs/*.jar /opt/app.jar WORKDIR /opt -CMD ["java", "-jar", "app.jar"] \ No newline at end of file +ENTRYPOINT exec java -Xms256m -Xmx256m -XX:MaxMetaspaceSize=128m $JAVA_OPTS -jar app.jar diff --git a/packs/gradle/charts/values.yaml b/packs/gradle/charts/values.yaml index e38b17b..269833e 100644 --- a/packs/gradle/charts/values.yaml +++ b/packs/gradle/charts/values.yaml @@ -16,10 +16,10 @@ service: fabric8.io/ingress.annotations: "kubernetes.io/ingress.class: nginx" resources: limits: - cpu: 500m - memory: 512Mi + cpu: 1000m + memory: 1024Mi requests: - cpu: 400m + cpu: 500m memory: 512Mi probePath: /actuator/health livenessProbe: diff --git a/packs/maven/Dockerfile b/packs/maven/Dockerfile index d008962..3f33424 100644 --- a/packs/maven/Dockerfile +++ b/packs/maven/Dockerfile @@ -11,4 +11,5 @@ COPY pom.xml target/lib* /opt/lib/ # we could do with a better way to know the name - or to always create an app.jar or something COPY target/*.jar /opt/app.jar WORKDIR /opt -CMD ["java", "-jar", "app.jar"] \ No newline at end of file + +ENTRYPOINT exec java -Xms256m -Xmx256m -XX:MaxMetaspaceSize=128m $JAVA_OPTS -jar app.jar diff --git a/packs/maven/charts/values.yaml b/packs/maven/charts/values.yaml index 807cb35..c8b2d4e 100644 --- a/packs/maven/charts/values.yaml +++ b/packs/maven/charts/values.yaml @@ -16,10 +16,10 @@ service: fabric8.io/ingress.annotations: "kubernetes.io/ingress.class: nginx" resources: limits: - cpu: 500m - memory: 512Mi + cpu: 1000m + memory: 1024Mi requests: - cpu: 400m + cpu: 500m memory: 512Mi probePath: /actuator/health livenessProbe: From f18d09be2c9dcd839efbe683eeed93ee733a5aca Mon Sep 17 00:00:00 2001 From: Paolo Carta Date: Tue, 14 Aug 2018 13:10:22 +0200 Subject: [PATCH 2/4] improving performance --- packs/gradle/charts/values.yaml | 6 +++--- packs/maven/charts/values.yaml | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/packs/gradle/charts/values.yaml b/packs/gradle/charts/values.yaml index 269833e..5d7f02c 100644 --- a/packs/gradle/charts/values.yaml +++ b/packs/gradle/charts/values.yaml @@ -16,10 +16,10 @@ service: fabric8.io/ingress.annotations: "kubernetes.io/ingress.class: nginx" resources: limits: - cpu: 1000m - memory: 1024Mi + cpu: 1800m + memory: 768Mi requests: - cpu: 500m + cpu: 600m memory: 512Mi probePath: /actuator/health livenessProbe: diff --git a/packs/maven/charts/values.yaml b/packs/maven/charts/values.yaml index c8b2d4e..bd9972e 100644 --- a/packs/maven/charts/values.yaml +++ b/packs/maven/charts/values.yaml @@ -16,10 +16,10 @@ service: fabric8.io/ingress.annotations: "kubernetes.io/ingress.class: nginx" resources: limits: - cpu: 1000m - memory: 1024Mi + cpu: 1800m + memory: 768Mi requests: - cpu: 500m + cpu: 600m memory: 512Mi probePath: /actuator/health livenessProbe: From 261b88781caab6a02e93fe778768bcf890c63418 Mon Sep 17 00:00:00 2001 From: Paolo Carta Date: Wed, 15 Aug 2018 13:57:21 +0200 Subject: [PATCH 3/4] moving env variables to kubernetes manifest --- packs/gradle/Dockerfile | 2 +- packs/gradle/charts/templates/deployment.yaml | 5 +++++ packs/maven/Dockerfile | 2 +- packs/maven/charts/templates/deployment.yaml | 5 +++++ 4 files changed, 12 insertions(+), 2 deletions(-) diff --git a/packs/gradle/Dockerfile b/packs/gradle/Dockerfile index a0e0620..469f33e 100644 --- a/packs/gradle/Dockerfile +++ b/packs/gradle/Dockerfile @@ -3,4 +3,4 @@ ENV PORT 8080 EXPOSE 8080 COPY build/libs/*.jar /opt/app.jar WORKDIR /opt -ENTRYPOINT exec java -Xms256m -Xmx256m -XX:MaxMetaspaceSize=128m $JAVA_OPTS -jar app.jar +ENTRYPOINT exec java -Xms$HEAP_SIZE -Xmx$HEAP_SIZE -XX:MaxMetaspaceSize=$PERMGEN_SIZE $JAVA_OPTS -jar app.jar diff --git a/packs/gradle/charts/templates/deployment.yaml b/packs/gradle/charts/templates/deployment.yaml index a9b19a9..1a2d8b8 100644 --- a/packs/gradle/charts/templates/deployment.yaml +++ b/packs/gradle/charts/templates/deployment.yaml @@ -23,6 +23,11 @@ spec: imagePullPolicy: {{ .Values.image.pullPolicy }} ports: - containerPort: {{ .Values.service.internalPort }} + env: + - name: HEAP_SIZE + value: "256m" + - name: PERMGEN_SIZE + value: "128m" livenessProbe: httpGet: path: {{ .Values.probePath }} diff --git a/packs/maven/Dockerfile b/packs/maven/Dockerfile index 3f33424..c07fecf 100644 --- a/packs/maven/Dockerfile +++ b/packs/maven/Dockerfile @@ -12,4 +12,4 @@ COPY pom.xml target/lib* /opt/lib/ COPY target/*.jar /opt/app.jar WORKDIR /opt -ENTRYPOINT exec java -Xms256m -Xmx256m -XX:MaxMetaspaceSize=128m $JAVA_OPTS -jar app.jar +ENTRYPOINT exec java -Xms$HEAP_SIZE -Xmx$HEAP_SIZE -XX:MaxMetaspaceSize=$PERMGEN_SIZE $JAVA_OPTS -jar app.jar diff --git a/packs/maven/charts/templates/deployment.yaml b/packs/maven/charts/templates/deployment.yaml index a9b19a9..1a2d8b8 100644 --- a/packs/maven/charts/templates/deployment.yaml +++ b/packs/maven/charts/templates/deployment.yaml @@ -23,6 +23,11 @@ spec: imagePullPolicy: {{ .Values.image.pullPolicy }} ports: - containerPort: {{ .Values.service.internalPort }} + env: + - name: HEAP_SIZE + value: "256m" + - name: PERMGEN_SIZE + value: "128m" livenessProbe: httpGet: path: {{ .Values.probePath }} From 062001903f950236af3d962641c140c67e9d2bb1 Mon Sep 17 00:00:00 2001 From: Paolo Carta Date: Sun, 26 Aug 2018 22:17:21 +0200 Subject: [PATCH 4/4] adding experimental jvm features --- packs/gradle/Dockerfile | 2 +- packs/gradle/charts/templates/deployment.yaml | 5 ----- packs/maven/Dockerfile | 2 +- packs/maven/charts/templates/deployment.yaml | 5 ----- 4 files changed, 2 insertions(+), 12 deletions(-) diff --git a/packs/gradle/Dockerfile b/packs/gradle/Dockerfile index 469f33e..930d976 100644 --- a/packs/gradle/Dockerfile +++ b/packs/gradle/Dockerfile @@ -3,4 +3,4 @@ ENV PORT 8080 EXPOSE 8080 COPY build/libs/*.jar /opt/app.jar WORKDIR /opt -ENTRYPOINT exec java -Xms$HEAP_SIZE -Xmx$HEAP_SIZE -XX:MaxMetaspaceSize=$PERMGEN_SIZE $JAVA_OPTS -jar app.jar +ENTRYPOINT exec java -XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap $JAVA_OPTS -jar app.jar diff --git a/packs/gradle/charts/templates/deployment.yaml b/packs/gradle/charts/templates/deployment.yaml index 1a2d8b8..a9b19a9 100644 --- a/packs/gradle/charts/templates/deployment.yaml +++ b/packs/gradle/charts/templates/deployment.yaml @@ -23,11 +23,6 @@ spec: imagePullPolicy: {{ .Values.image.pullPolicy }} ports: - containerPort: {{ .Values.service.internalPort }} - env: - - name: HEAP_SIZE - value: "256m" - - name: PERMGEN_SIZE - value: "128m" livenessProbe: httpGet: path: {{ .Values.probePath }} diff --git a/packs/maven/Dockerfile b/packs/maven/Dockerfile index c07fecf..bb62253 100644 --- a/packs/maven/Dockerfile +++ b/packs/maven/Dockerfile @@ -12,4 +12,4 @@ COPY pom.xml target/lib* /opt/lib/ COPY target/*.jar /opt/app.jar WORKDIR /opt -ENTRYPOINT exec java -Xms$HEAP_SIZE -Xmx$HEAP_SIZE -XX:MaxMetaspaceSize=$PERMGEN_SIZE $JAVA_OPTS -jar app.jar +ENTRYPOINT exec java -XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap $JAVA_OPTS -jar app.jar diff --git a/packs/maven/charts/templates/deployment.yaml b/packs/maven/charts/templates/deployment.yaml index 1a2d8b8..a9b19a9 100644 --- a/packs/maven/charts/templates/deployment.yaml +++ b/packs/maven/charts/templates/deployment.yaml @@ -23,11 +23,6 @@ spec: imagePullPolicy: {{ .Values.image.pullPolicy }} ports: - containerPort: {{ .Values.service.internalPort }} - env: - - name: HEAP_SIZE - value: "256m" - - name: PERMGEN_SIZE - value: "128m" livenessProbe: httpGet: path: {{ .Values.probePath }}