JVM недостаточно памяти - PullRequest
0 голосов
/ 19 июня 2019

Я получаю это, когда пытаюсь отправить свой проект Tomcat в IBM Cloud:

Невозможно рассчитать конфигурацию памяти JVM: недостаточно памяти осталось до кучи. Памяти доступно для выделения 256М есть меньше выделенной памяти 578931K (-XX: ReservedCodeCacheSize = 240M, -XX: MaxDirectMemorySize = 10M, XX: MaxMetaspaceSize = 66931 КБ, Xss1M * 250 потоков)

Я не могу увеличить предел памяти. Я попытался использовать флаги JVM, чтобы уменьшить использование памяти JVM в файле manifest.yml:

env:
    JAVA_OPTS: '-XX:MaxMetaspaceSize=80780K -Xss160k -Xmx200M -XX:ReservedCodeCacheSize=16M -XX:MaxDirectMemorySize=16M'

и попытался использовать более старую версию java buildpack, также в файле manifest.yml:

buildpack: https://github.com/cloudfoundry/java-buildpack#v3.19.2 

но у меня были ошибки при выполнении обеих задач. Что я могу сделать, чтобы решить эту проблему?

1 Ответ

0 голосов
/ 28 июня 2019

Вы можете попытаться уменьшить максимальный пул потоков Tomcat до минимума, так как по умолчанию установлено значение 200. Конечно, это действительно уменьшит его параллелизм и ограничит доступ к веб-серверу очень ограниченному числу пользователей.

К сожалению, занимаемая площадь Java для веб-сервера достаточно высока, и с помощью последних сборочных пакетов CF я не смог запустить сервер с объемом памяти менее 1 ГБ (ну, у меня был, но не для производственных целей).

...