Die Heroku Procfile-Konfiguration für Spring Boot wird mit Standardwerten überschrieben

459
jsk

Ich habe eine Spring-Boot-Anwendung und bekomme ständig R14-Speicherwarnungen bei Heroku. Ich glaube, das Problem liegt in der seltenen Speicherbereinigung und der Heap-Größe, da das manuelle Auslösen des Speicherbereinigers in regelmäßigen Abständen dazu führt, dass das Problem auch beim Stresstest mit virtuellen Benutzern nicht mehr auftritt. Mein nächster Schritt bestand also darin, eine sauberere Lösung bereitzustellen, indem der jvm optimiert wurde, anstatt den gc manuell auszulösen. Ich habe die Standardgröße des Heap-Speichers von 300 auf 250 m reduziert und die Schwellenwerte für die alte Generation auf 50% festgelegt. Bei diesem Setup auf meinem lokalen Rechner lag der verwendete Heap zwischen 50 und 70 MB, was in Ordnung sein sollte. Ich habe dann versucht, die Jvm-Einstellungen auf Heroku einzustellen. Die Standardoptionen werden angezeigt, wenn keine Datei angezeigt wird:

web: java -Dserver.port=$PORT $JAVA_OPTS -jar build/libs/*.jar 

Ich habe meine gewünschten Parameter so hinzugefügt:

web: java -Dserver.port=$PORT $JAVA_OPTS -jar build/libs/*.jar -Xms64m -Xmx250m -XX:CMSInitiatingOccupancyFraction=50 -XX:+PrintGCDetails -Xlog:gc 

Dies wird jedoch nicht funktionieren.

Während des Startvorgangs erhalte ich folgende Nachricht:

Starting process with command `java -Dserver.port=22382 $JAVA_OPTS -jar build/libs/*.jar -Xms64m -Xmx250m -XX:CMSInitiatingOccupancyFraction=50 -XX:+PrintGCDetails -Xlog:gc`  Setting JAVA_TOOL_OPTIONS defaults based on dyno size. Custom settings will override them.  Picked up JAVA_TOOL_OPTIONS: -Xmx300m -Xss512k -Dfile.encoding=UTF-8  

Ich kann auch keine Garbage-Collector-Meldungen sehen und der R14-Fehler wurde zurückgegeben.

0

0 Antworten auf die Frage