kannengi
Elite Observer

Deployment for target expired - Java heap space

Jump to solution

Hallo,

ich habe seit neuestem ein Problem bei meinem CaaS-Voll-Deployment (das vorher funktioniert hat).

Im "Finalize CaaS Generation" task kommen viele Warnings vom Typ "Deployment for target expired".

Hier das voll Log:

INFO  18.10.2017 13:48:06.304 (de.espirit.firstspirit.server.scheduler.ScheduleManagerImpl): starting task 'Finalize CaaS Generation' - schedule entry 'CaaS Full' (id=18910)

INFO  18.10.2017 13:49:56.306 (com.espirit.caas.generation.listener.ReportGenerationResultListener): generated messages: 25

WARN  18.10.2017 13:49:56.306 (com.espirit.caas.generation.listener.ReportGenerationResultListener): Deployment for target expired: GenerationResult{uid=eichhoernchen_2560x854_de, uidType=MEDIASTORE_LEAF, language=DE, startTime=1508334478893}

WARN  18.10.2017 13:49:56.306 (com.espirit.caas.generation.listener.ReportGenerationResultListener): Deployment for target expired: GenerationResult{uid=shutterstock_198169034_cmyk_960x320_de, uidType=MEDIASTORE_LEAF, language=DE, startTime=1508334478893}

WARN  18.10.2017 13:49:56.306 (com.espirit.caas.generation.listener.ReportGenerationResultListener): Deployment for target expired: GenerationResult{uid=shutterstock_198169034_cmyk_0x0_de, uidType=MEDIASTORE_LEAF, language=DE, startTime=1508334478893}

WARN  18.10.2017 13:49:56.306 (com.espirit.caas.generation.listener.ReportGenerationResultListener): Deployment for target expired: GenerationResult{uid=shutterstock_198169034_cmyk_700x400_de, uidType=MEDIASTORE_LEAF, language=DE, startTime=1508334478893}

WARN  18.10.2017 13:49:56.306 (com.espirit.caas.generation.listener.ReportGenerationResultListener): Deployment for target expired: GenerationResult{uid=shutterstock_198169034_cmyk_3840x1280_de, uidType=MEDIASTORE_LEAF, language=DE, startTime=1508334478893}

WARN  18.10.2017 13:49:56.306 (com.espirit.caas.generation.listener.ReportGenerationResultListener): Deployment for target expired: GenerationResult{uid=eichhoernchen_1560x892_de, uidType=MEDIASTORE_LEAF, language=DE, startTime=1508334478893}

WARN  18.10.2017 13:49:56.306 (com.espirit.caas.generation.listener.ReportGenerationResultListener): Deployment for target expired: GenerationResult{uid=eichhoernchen_3840x1280_de, uidType=MEDIASTORE_LEAF, language=DE, startTime=1508334478893}

WARN  18.10.2017 13:49:56.306 (com.espirit.caas.generation.listener.ReportGenerationResultListener): Deployment for target expired: GenerationResult{uid=shutterstock_198169034_cmyk_1280x427_de, uidType=MEDIASTORE_LEAF, language=DE, startTime=1508334478893}

WARN  18.10.2017 13:49:56.307 (com.espirit.caas.generation.listener.ReportGenerationResultListener): Deployment for target expired: GenerationResult{uid=null, uidType=null, language=null, startTime=1508334478893}

WARN  18.10.2017 13:49:56.307 (com.espirit.caas.generation.listener.ReportGenerationResultListener): Deployment for target expired: GenerationResult{uid=news_1410_de, uidType=entity, language=DE, startTime=1508334478893}

WARN  18.10.2017 13:49:56.307 (com.espirit.caas.generation.listener.ReportGenerationResultListener): Deployment for target expired: GenerationResult{uid=eichhoernchen_1920x640_de, uidType=MEDIASTORE_LEAF, language=DE, startTime=1508334478893}

WARN  18.10.2017 13:49:56.307 (com.espirit.caas.generation.listener.ReportGenerationResultListener): Deployment for target expired: GenerationResult{uid=eichhoernchen_350x200_de, uidType=MEDIASTORE_LEAF, language=DE, startTime=1508334478893}

WARN  18.10.2017 13:49:56.307 (com.espirit.caas.generation.listener.ReportGenerationResultListener): Deployment for target expired: GenerationResult{uid=eichhoernchen_960x320_de, uidType=MEDIASTORE_LEAF, language=DE, startTime=1508334478893}

WARN  18.10.2017 13:49:56.307 (com.espirit.caas.generation.listener.ReportGenerationResultListener): Deployment for target expired: GenerationResult{uid=shutterstock_198169034_cmyk_2560x854_de, uidType=MEDIASTORE_LEAF, language=DE, startTime=1508334478893}

WARN  18.10.2017 13:49:56.307 (com.espirit.caas.generation.listener.ReportGenerationResultListener): Deployment for target expired: GenerationResult{uid=eichhoernchen_700x400_de, uidType=MEDIASTORE_LEAF, language=DE, startTime=1508334478893}

WARN  18.10.2017 13:49:56.307 (com.espirit.caas.generation.listener.ReportGenerationResultListener): Deployment for target expired: GenerationResult{uid=news_1409_de, uidType=entity, language=DE, startTime=1508334478893}

WARN  18.10.2017 13:49:56.307 (com.espirit.caas.generation.listener.ReportGenerationResultListener): Deployment for target expired: GenerationResult{uid=shutterstock_198169034_cmyk_1560x892_de, uidType=MEDIASTORE_LEAF, language=DE, startTime=1508334478893}

WARN  18.10.2017 13:49:56.307 (com.espirit.caas.generation.listener.ReportGenerationResultListener): Deployment for target expired: GenerationResult{uid=eichhoernchen_1280x427_de, uidType=MEDIASTORE_LEAF, language=DE, startTime=1508334478893}

WARN  18.10.2017 13:49:56.307 (com.espirit.caas.generation.listener.ReportGenerationResultListener): Deployment for target expired: GenerationResult{uid=shutterstock_198169034_cmyk_780x446_de, uidType=MEDIASTORE_LEAF, language=DE, startTime=1508334478893}

WARN  18.10.2017 13:49:56.307 (com.espirit.caas.generation.listener.ReportGenerationResultListener): Deployment for target expired: GenerationResult{uid=contact_1088_de, uidType=entity, language=DE, startTime=1508334478893}

WARN  18.10.2017 13:49:56.307 (com.espirit.caas.generation.listener.ReportGenerationResultListener): Deployment for target expired: GenerationResult{uid=shutterstock_198169034_cmyk_1920x640_de, uidType=MEDIASTORE_LEAF, language=DE, startTime=1508334478893}

WARN  18.10.2017 13:49:56.307 (com.espirit.caas.generation.listener.ReportGenerationResultListener): Deployment for target expired: GenerationResult{uid=eichhoernchen_0x0_de, uidType=MEDIASTORE_LEAF, language=DE, startTime=1508334478893}

WARN  18.10.2017 13:49:56.307 (com.espirit.caas.generation.listener.ReportGenerationResultListener): Deployment for target expired: GenerationResult{uid=news_1408_de, uidType=entity, language=DE, startTime=1508334478893}

WARN  18.10.2017 13:49:56.307 (com.espirit.caas.generation.listener.ReportGenerationResultListener): Deployment for target expired: GenerationResult{uid=shutterstock_198169034_cmyk_350x200_de, uidType=MEDIASTORE_LEAF, language=DE, startTime=1508334478893}

WARN  18.10.2017 13:49:56.307 (com.espirit.caas.generation.listener.ReportGenerationResultListener): Deployment for target expired: GenerationResult{uid=eichhoernchen_780x446_de, uidType=MEDIASTORE_LEAF, language=DE, startTime=1508334478893}

INFO  18.10.2017 13:49:56.307 (com.espirit.caas.generation.listener.ReportGenerationResultListener): 0/25 deployed successfully.

INFO  18.10.2017 13:49:56.308 (com.espirit.caas.service.util.CaaSConnectionImpl): Send CaaS entity...

INFO  18.10.2017 13:49:56.312 (com.espirit.caas.service.util.CaaSConnectionImpl): Close CaaS connection...

INFO  18.10.2017 13:49:56.318 (de.espirit.firstspirit.server.scheduler.ScheduleManagerImpl): finished task 'Finalize CaaS Generation' - schedule entry 'CaaS Full' (id=18910)

Mit was könnte der Fehler zutun haben?

Im CaaS Admin Interface sehe ich mein Projekt. Ich habe jetzt mal eine der beiden Collections gelöscht - aber sie wird nicht wieder angelegt.

Im Log des caas-bus Pod finde ich dieses:

WARN | Transport Connection to: tcp://10.42.0.4:40666 failed: java.io.IOException: Unexpected error occurred: java.lang.OutOfMemoryError: Java heap space

WARN | Transport Connection to: tcp://10.42.0.4:40672 failed: java.io.IOException: Unexpected error occurred: java.lang.OutOfMemoryError: Java heap space

WARN | Transport Connection to: tcp://10.42.0.4:40678 failed: java.io.IOException: Unexpected error occurred: java.lang.OutOfMemoryError: Java heap space

CaaS-Version: 1.3.11

Danke für einen Tipp!

Gruß,

Benny Kannengießer

Labels (2)
Tags (2)
0 Kudos
1 Solution

Accepted Solutions
markus_priegl
Occasional Observer

Re: Deployment for target expired - Java heap space

Jump to solution

Hallo Benny,

Du kannst hier zwei Umgebungsvariablen dem caas-bus mitgeben ( CAAS_BUS_MIN_MEMORY und CAAS_BUS_MAX_MEMORY 😞

Auszug caas-bus.yml

        - name: CAAS_BUS_MIN_MEMORY

          value: "2000m"

        - name: CAAS_BUS_MAX_MEMORY

          value: "2000m"

        resources:

          limits:

            cpu: 4000m

            memory: 4000Mi

Mindestens 1GB benötigt der caas-bus. Danach den POD neustarten und es sollte wieder gehen.

Um weitere Java-Heapspace-Probleme zu umgehen (auch bei den anderen PODS), setze mal in den ymls (das geht auch beim caas-bus) für ...

- caas-rest-api

- caas-adapter

... die Umgebungsvariable "_JAVA_OPTIONS" - Details dazu findest du hier: java - Difference between _JAVA_OPTIONS JAVA_TOOL_OPTIONS and JAVA_OPTS - Stack Overflow

- caas-adapter.yml (Auszug):

        - name: _JAVA_OPTIONS

          value: "-Xms256m -Xmx512m"

        resources:

          limits:

            cpu: 1000m

            memory: 1000Mi

          requests:

            cpu: 250m

            memory: 250Mi

- caas-rest-api.yml (Auszug):

        - name: _JAVA_OPTIONS

          value: "-Xms512m -Xmx1024m"

        resources:

          limits:

            cpu: 1000m

            memory: 2000Mi

          requests:

            cpu: 250m

            memory: 500Mi

Da die Mongo-DB kein Java-Process ist, funktioniert das oben beschriebene nicht für diesen POD/Container.

Deshalb hier ein Auszug wie man diese Limitierung aktivieren kann, die zu übernehmende Zeile ist Nr 5. Hier kannst du als Dezimalzahl (z.b. 1.5) den Heapspace in GB angeben. Wichtig ist, dass hierzu noch ca. 500 MB RAM für andere Teilprozesse benötigt werden:

containers:

      - image: localhost:5000/e-spirit/caas-mongo:3.4.2

        imagePullPolicy: Always

        name: caas-mongo

        args: ["mongod", "--auth", "--wiredTigerCacheSizeGB=1"]

Für die Zukunft relevant ist, dass man hier den entrypoint, welcher im default von e-Spirit mitkommt überschreibt. D.h. zuvor nachsehen, ob e-Spirit in einer neueren Version als 1.3.11 etwas geändert hat und dann hier die Argumente mit übernehmen.

Andernfalls nimmt sich die mongo-db ganz schön viel, nämlich Prozentual zu dem Node-RAM. Der eine Kubernetes Node hat bei mir 128GB RAM, demnach schaut es ohne obige Limitierung so aus, dass hier 48GB vom caas-mongo container "in Beschlag" genommen sind:

caas-mongo_withoutsettingwiredtigercachesize.png

Zu diesem Thema mache ich bei Gelegenheit noch einen Community-Eintrag. Alle Java-PODs über den gleichen Weg zu konfigurieren, erscheint mir schon sehr sinnvoll (_JAVA_OPTIONS), da man hierüber dann sehr flexibel ist (remote-debugging, tracing, garbace collection settings, ..).

Viele Grüße

Markus

View solution in original post

0 Kudos
2 Replies
markus_priegl
Occasional Observer

Re: Deployment for target expired - Java heap space

Jump to solution

Hallo Benny,

Du kannst hier zwei Umgebungsvariablen dem caas-bus mitgeben ( CAAS_BUS_MIN_MEMORY und CAAS_BUS_MAX_MEMORY 😞

Auszug caas-bus.yml

        - name: CAAS_BUS_MIN_MEMORY

          value: "2000m"

        - name: CAAS_BUS_MAX_MEMORY

          value: "2000m"

        resources:

          limits:

            cpu: 4000m

            memory: 4000Mi

Mindestens 1GB benötigt der caas-bus. Danach den POD neustarten und es sollte wieder gehen.

Um weitere Java-Heapspace-Probleme zu umgehen (auch bei den anderen PODS), setze mal in den ymls (das geht auch beim caas-bus) für ...

- caas-rest-api

- caas-adapter

... die Umgebungsvariable "_JAVA_OPTIONS" - Details dazu findest du hier: java - Difference between _JAVA_OPTIONS JAVA_TOOL_OPTIONS and JAVA_OPTS - Stack Overflow

- caas-adapter.yml (Auszug):

        - name: _JAVA_OPTIONS

          value: "-Xms256m -Xmx512m"

        resources:

          limits:

            cpu: 1000m

            memory: 1000Mi

          requests:

            cpu: 250m

            memory: 250Mi

- caas-rest-api.yml (Auszug):

        - name: _JAVA_OPTIONS

          value: "-Xms512m -Xmx1024m"

        resources:

          limits:

            cpu: 1000m

            memory: 2000Mi

          requests:

            cpu: 250m

            memory: 500Mi

Da die Mongo-DB kein Java-Process ist, funktioniert das oben beschriebene nicht für diesen POD/Container.

Deshalb hier ein Auszug wie man diese Limitierung aktivieren kann, die zu übernehmende Zeile ist Nr 5. Hier kannst du als Dezimalzahl (z.b. 1.5) den Heapspace in GB angeben. Wichtig ist, dass hierzu noch ca. 500 MB RAM für andere Teilprozesse benötigt werden:

containers:

      - image: localhost:5000/e-spirit/caas-mongo:3.4.2

        imagePullPolicy: Always

        name: caas-mongo

        args: ["mongod", "--auth", "--wiredTigerCacheSizeGB=1"]

Für die Zukunft relevant ist, dass man hier den entrypoint, welcher im default von e-Spirit mitkommt überschreibt. D.h. zuvor nachsehen, ob e-Spirit in einer neueren Version als 1.3.11 etwas geändert hat und dann hier die Argumente mit übernehmen.

Andernfalls nimmt sich die mongo-db ganz schön viel, nämlich Prozentual zu dem Node-RAM. Der eine Kubernetes Node hat bei mir 128GB RAM, demnach schaut es ohne obige Limitierung so aus, dass hier 48GB vom caas-mongo container "in Beschlag" genommen sind:

caas-mongo_withoutsettingwiredtigercachesize.png

Zu diesem Thema mache ich bei Gelegenheit noch einen Community-Eintrag. Alle Java-PODs über den gleichen Weg zu konfigurieren, erscheint mir schon sehr sinnvoll (_JAVA_OPTIONS), da man hierüber dann sehr flexibel ist (remote-debugging, tracing, garbace collection settings, ..).

Viele Grüße

Markus

0 Kudos
kannengi
Elite Observer

Re: Deployment for target expired - Java heap space

Jump to solution

Hallo Markus,

danke für die kompetente Antwort!

Funktioniert wieder alles 🙂

Viele Grüße,

Benny

0 Kudos