Java-buildpack: Die Java-App kann nicht mit der Buildpack-Version b08a692 gestartet werden

Erstellt am 3. MĂ€rz 2017  Â·  20Kommentare  Â·  Quelle: cloudfoundry/java-buildpack

-----> Java Buildpack Version: b08a692 | https://github.com/cloudfoundry/java-buildpack.git#b08a692
-----> Downloading Open Jdk JRE 1.8.0_121 from https://java-buildpack.cloudfoundry.org/openjdk/trusty/x86_64/openjdk-1.8.0_121.tar.gz (found in cache)
       Expanding Open Jdk JRE to .java-buildpack/open_jdk_jre (0.9s)
-----> Downloading Open JDK Like Memory Calculator 3.1.0_RELEASE from https://java-buildpack.cloudfoundry.org/memory-calculator/trusty/x86_64/memory-calculator-3.1.0_RELEASE.tar.gz (0.0s)
       Loaded Classes: 14911, Threads: 300, JAVA_OPTS: ''
-----> Downloading Container Certificate Trust Store 2.0.0_RELEASE from https://java-buildpack.cloudfoundry.org/container-certificate-trust-store/container-certificate-trust-store-2.0.0_RELEASE.jar (found in cache)
       Adding certificates to .java-buildpack/container_certificate_trust_store/truststore.jks (0.3s)
-----> Downloading Tomcat Instance 8.5.11 from https://java-buildpack.cloudfoundry.org/tomcat/tomcat-8.5.11.tar.gz (found in cache)
       Expanding Tomcat Instance to .java-buildpack/tomcat (0.1s)
-----> Downloading Tomcat Lifecycle Support 2.5.0_RELEASE from https://java-buildpack.cloudfoundry.org/tomcat-lifecycle-support/tomcat-lifecycle-support-2.5.0_RELEASE.jar (found in cache)
-----> Downloading Tomcat Logging Support 2.5.0_RELEASE from https://java-buildpack.cloudfoundry.org/tomcat-logging-support/tomcat-logging-support-2.5.0_RELEASE.jar (found in cache)
-----> Downloading Tomcat Access Logging Support 2.5.0_RELEASE from https://java-buildpack.cloudfoundry.org/tomcat-access-logging-support/tomcat-access-logging-support-2.5.0_RELEASE.jar (found in cache)
-----> Downloading Tomcat External Configuration 8.5.11 from https://geapmcfg.run.aws-jp01-pr.ice.predix.io/tomcatcfg.tar.gz (found in cache)
       Expanding Tomcat External Configuration to .java-buildpack/tomcat (0.0s)
-----> Uploading droplet (145M)

0 of 1 instances running, 1 starting
0 of 1 instances running, 1 starting
0 of 1 instances running, 1 down
0 of 1 instances running, 1 down
0 of 1 instances running, 1 starting
0 of 1 instances running, 1 starting
0 of 1 instances running, 1 starting
0 of 1 instances running, 1 down
0 of 1 instances running, 1 down
0 of 1 instances running, 1 down
0 of 1 instances running, 1 down
0 of 1 instances running, 1 down
0 of 1 instances running, 1 down
0 of 1 instances running, 1 down
0 of 1 instances running, 1 down
0 of 1 instances running, 1 starting
0 of 1 instances running, 1 starting
0 of 1 instances running, 1 starting
0 of 1 instances running, 1 down
0 of 1 instances running, 1 down
0 of 1 instances running, 1 down
0 of 1 instances running, 1 down
0 of 1 instances running, 1 down
0 of 1 instances running, 1 down
0 of 1 instances running, 1 down
0 of 1 instances running, 1 down
0 of 1 instances running, 1 failing
FAILED
Error restarting application: Start unsuccessful

Hilfreichster Kommentar

Wir sehen hier Ă€hnliche Probleme, die Klassenberechnung schlĂ€gt fĂŒr Kunden fehl, die unseren Agenten verwenden, da unser Javaagent aus LeistungsgrĂŒnden eine native BinĂ€rdatei ist. Ich wĂŒrde mir wĂŒnschen, dass der Taschenrechner etwas weniger aggressiv ist, oder einige Anweisungen zum Manipulieren der FunktionalitĂ€t des Taschenrechners ĂŒber eine Erweiterung. Allen unseren Kunden sagen zu mĂŒssen, dass sie zusĂ€tzliche Java-Optionen manuell definieren mĂŒssen, ist suboptimal...

Alle 20 Kommentare

BestÀtigt. Wir sehen dieses Problem auch,

Könnten Sie bitte den genauen Fehler aus den Anwendungsprotokollen posten?

Der Java-Buildpack-Speicherrechner wurde durch Commit b08a692 auf v3 aktualisiert. v3 respektiert die OpenJDK-Standardwerte fĂŒr den reservierten Code-Cache, der bei Java 8 240 MB betrĂ€gt. Es ist wahrscheinlich, dass dies der Grund dafĂŒr ist, dass die Anwendung nicht gestartet werden kann. Sie können den vom Speicherrechner verwendeten Wert wie im folgenden Beispiel ĂŒberschreiben:

cf set-env app-name JAVA_OPTS '-XX:ReservedCodeCacheSize=64m'

Sie mĂŒssen jedoch eine geeignete GrĂ¶ĂŸe auswĂ€hlen, denn wenn Sie sie zu klein machen, könnte der CPU-Verbrauch der Anwendung hoch werden.

Aufgrund von Commit https://github.com/cloudfoundry/java-buildpack/commit/b08a69221a9ecfa61a9bfd568639f891b9313a19 konnten unsere Anwendungen auch nicht geladen werden/stĂŒrzten mit OutOfMemory:Metaspace ab. Es scheint, dass der Speicherrechner (v3+) nicht mehr ~10% Speicher fĂŒr den Metaspace verwendet, sondern die maximale Metaspace-GrĂ¶ĂŸe auf ~56m setzt.

Problemumgehung: Verwenden Sie Version v3.14 (https://github.com/cloudfoundry/java-buildpack.git#v3.14) anstelle der neuesten Version.

Wir sehen Àhnliche Probleme, aber verursacht durch unzureichende CompressedClassSpace - es ist nicht zu weit weg und gibt uns 8385K , wÀhrend wir eigentlich mehr wie 8704K brauchen.

@markbigler Der v3-Speicherrechner schĂ€tzt den Metaspace-Verbrauch basierend auf der Anzahl der Klassendateien in der Anwendung. Wenn dies nicht ausreicht, können Sie das Metaspace-Limit beispielsweise folgendermaßen festlegen:

cf set-env app-name JAVA_OPTS '-XX:MaxMetaspaceSize=100m'

@ipsi Ähnlich fĂŒr komprimierten Klassenraum. Sie können es zum Beispiel folgendermaßen einstellen:

cf set-env app-name JAVA_OPTS '-XX:CompressedClassSpaceSize=20m'

gleiches Problem hier, immer outofmemory Fehler

Dasselbe Problem hier. Die Verwendung der alten Version des Buildpacks löste es vorĂŒbergehend:

cf push -b https://github.com/cloudfoundry/java-buildpack.git\#v3.12

StackOverflow-Frage zu diesem Thema: http://stackoverflow.com/questions/42576613/java-spring-application-cannot-start-up-on-cloudfoundry-outofmemoryerror-compre

danke das hat funktioniert!

Wir sehen hier Ă€hnliche Probleme, die Klassenberechnung schlĂ€gt fĂŒr Kunden fehl, die unseren Agenten verwenden, da unser Javaagent aus LeistungsgrĂŒnden eine native BinĂ€rdatei ist. Ich wĂŒrde mir wĂŒnschen, dass der Taschenrechner etwas weniger aggressiv ist, oder einige Anweisungen zum Manipulieren der FunktionalitĂ€t des Taschenrechners ĂŒber eine Erweiterung. Allen unseren Kunden sagen zu mĂŒssen, dass sie zusĂ€tzliche Java-Optionen manuell definieren mĂŒssen, ist suboptimal...

@akirasoft Vielen Dank fĂŒr die Beschreibung Ihres Anwendungsfalls. Wie möchten Sie das Verhalten des Rechners beeinflussen? WĂ€re es beispielsweise sinnvoll, die SchĂ€tzung der Anzahl der geladenen Klassen (die das Java-Buildpack an den Speicherrechner ĂŒbergibt) anzupassen und dann den Rechner die Speichereinstellungen basierend auf der neuen SchĂ€tzung ableiten zu lassen? Wenn ja, fĂŒgt Ihr Javaagent eine feste Anzahl von Klassen hinzu oder hĂ€ngt die hinzugefĂŒgte Anzahl (linear?) von der Anzahl der von der Anwendung geladenen Klassen ab?

@glyn unsere GrundflĂ€che wird etwas zusĂ€tzlicher flacher Platz sein, um unseren Agenten zu halten, und dann ein bisschen mehr Platz, basierend auf den Klassen, als Ihr Taschenrechner erwartet, sagen wir 1-3 % zusĂ€tzlich, wenn ich schĂ€tze. Im Allgemeinen sieht es fĂŒr mich so aus, als wĂ€re der Rechner basierend auf anderen Kommentaren hier etwas zu aggressiv. Mit dem vorherigen Rechner hat im letzten Jahr alles super funktioniert.

Hier gilt das gleiche. Diese Anwendung (https://github.com/EuregJUG-Maas-Rhine/site, Spring Boot) startet nicht mehr (CompressedClassSpace).

Ich habe auch das gleiche Problem. Ein ZurĂŒcksetzen auf eine Ă€ltere Version hat es auch fĂŒr mich behoben.

Auch bei meinen Apps das gleiche Problem. Rollback auf v3.13

Wir sehen auch OutOfMemoryErrors:

2017-03-06T09:20:39.44+0900 [App/0] OUT # java.lang.OutOfMemoryError: Compressed class space

Vielleicht mĂŒssen die v3-Heuristiken optimiert werden

@akirasoft "etwas zusĂ€tzlicher flacher Speicherplatz" wird wahrscheinlich auf Heap, Metaspace und komprimierten Klassenraum (oder Permgen in Java 7) aufgeteilt und kann sich möglicherweise sogar auf den reservierten Code-Cache und den direkten Speicherverbrauch auswirken, sodass es nicht ausreicht, eine Konstante hinzuzufĂŒgen eine einzige Formel, um die BedĂŒrfnisse eines Agenten zu berĂŒcksichtigen. Ist es möglich, den „Flat Space“-Verbrauch des Agenten in Bezug auf eine Ă€quivalente Anzahl geladener Klassen zu formulieren? Siehe das Design des Speicherrechners v3 fĂŒr Details darĂŒber, wie die Berechnung zustande kam.

Wir sind dabei, den Speicherrechner dazu zu bringen, mehr Metaspace und komprimierten Klassenraum zuzuweisen. Siehe Commit c9867a6 fĂŒr Details.

Speicherrechner v3.2.0.RELEASE ist verfĂŒgbar. Bitte wiederholen Sie Ihre Anwendungs-Pushs und sehen Sie, ob sie jetzt funktionieren.

@glyn wir haben ĂŒber Slack gesprochen, aber jetzt sieht alles viel besser aus, danke fĂŒr die Lösung!

Ich bin auf Buildpack v3.12 zurĂŒckgekehrt, es funktioniert gut.

Da auf die genauere Ausgabe Nr. 391 verwiesen wurde, schließe ich diese Ausgabe vorerst.

Danke fĂŒr die Hilfe aller.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen