2016-04-08 11 views
0

Ich habe eine Anwendung, die rechenintensiv ist (es gibt einige numerische Methoden Operationen, so ist es normal, diese große Verbrauch von Heap-Größe durch diesen Code zu haben) und wenn in Google App ausgeführt Engine es wirft: "java.lang.OutOfMemoryError: Java-Heap-Speicher". Selbst Google App Engine gibt vor, automatisch zu skalieren, um den Anforderungen der App zu entsprechen. Dies geschieht nicht im Hinblick auf die Größe des Heapspeichers. Ich habe dann versucht, einige Instanzen in Google Compute Engine zu erstellen, wie "16 VCPUs mit 60 GB Speicher" und bekomme trotzdem diesen Fehler, weil ich vermute, dass die von dieser Instanz verwendete Heap-Größe weniger als 1 GB beträgt. Meine Frage lautet also: Wie kann ich die Größe des Heapspeichers in Google Compute Instances oder Google App Engine anpassen, sodass ich eine Heap-Größe von 2 GB festlegen kann?anpassen Java-Heap-Größe auf Google Compute Engine Instanzen

Dank

Sorin

Antwort

0

auf Google App Engine, sind Sie limited to 1GB of RAM auf den größten Versicherungsarten, so dass, wenn Sie mehr als 1 GB RAM benötigen, werden Sie Compute Engine oder die App Engine Flexible Environment verwenden müssen.

Wenn Sie auf einer VM ausgeführt werden, sollten Sie the -Xmx and -Xms Flags festlegen, um die maximale bzw. minimale Heap-Größe zu steuern.

Beachten Sie, dass Sie möglicherweise java64 verwenden müssen, um mehr als 4 GB RAM verwenden zu können.

+0

Also, für Google App Engine ist der maximale Arbeitsspeicher 1 GB, aber wie viel ist für JVM-Heap reserviert? Auch für GAE ist es möglich, irgendeine Anpassung der Heap-Größe vorzunehmen, oder die für den Endbenutzer nicht verfügbar ist? –

+0

Ich bin ziemlich sicher, dass die maximale Heap-Größe auf GAE 1 GB ist. Dieser Parameter ist nicht anpassbar und wird von der GAE-Laufzeit gesteuert. –

+0

Der Link, den Sie in Ihrer ursprünglichen Antwort "begrenzt auf 1 GB RAM" angegeben haben, ist kaputt. Können Sie bitte einen gültigen Referenzlink posten? –