Ubuntu Server, на котором размещены некоторые приложения WAr, получает несколько сообщений об ошибках, как показано ниже.Этот сервер работает на tomcat8 и работал отлично, теперь без каких-либо изменений на стороне кода сервер получает ошибку, и Tomcat останавливается.
EVERE: SEVERE:Memory usage is low, parachute is non existent, your
system may start failing.
Exception: java.lang.OutOfMemoryError thrown from the
UncaughtExceptionHandler in thread "Thread-21"
Exception: java.lang.OutOfMemoryError thrown from the
UncaughtExceptionHandler in thread "Thread-9"
Exception: java.lang.OutOfMemoryError thrown from the
UncaughtExceptionHandler in thread "Thread-17"
SEVERE:Memory usage is low, parachute is non existent, your system may start
failing.
Exception in thread "Thread-11" java.lang.OutOfMemoryError: Java heap space
Exception in thread "http-nio-8080-Acceptor-0" Exception in thread
"ContainerBackgroundProcessor[StandardEngine[Catalina]]" Exception in thr
09:39:19.841 ERROR 116336 --- [nio-8080-exec-5]
o.s.b.w.servlet.support.ErrorPageFilter : Forwarding to error page from
request [/teams/my
java.lang.OutOfMemoryError: Java heap space
SEVERE:Memory usage is low, parachute is non existent, your system may start
failing.
java.lang.OutOfMemoryError: Java heap space
java.lang.OutOfMemoryError: Java heap space
java.lang.OutOfMemoryError: Java heap space
java.lang.OutOfMemoryError: Java heap space
Я не разработчик, поэтому я не очень разбираюсь в Java(основные вещи).Сначала я подумал, что это связано с оперативной памятью (4 ГБ на сервере), но потом я прочитал во многих местах, что в значительной степени связано с максимальным размером кучи Java.Поэтому я запустил следующую команду и проверил, что у меня есть 65 МБ для начального размера и 1 ГБ для максимального.
java -XX:+PrintFlagsFinal -version | grep -iE 'HeapSize|PermSize|ThreadStackSize'
intx CompilerThreadStackSize = 0 {pd product}
uintx ErgoHeapSizeLimit = 0 {product}
uintx HeapSizePerGCThread = 87241520 {product}
uintx InitialHeapSize := 65011712 {product}
uintx LargePageHeapSizeThreshold = 134217728 {product}
uintx MaxHeapSize := 1031798784 {product}
intx ThreadStackSize = 1024 {pd product}
intx VMThreadStackSize = 1024 {pd product}
Теперь я хочу увеличить максимальный размер до 2 ГБ и установить его таким образом.Я проверил в этом посте здесь и рассказывает о команде для этого, но когда я запускаю ее на консоли, я не могу этого сделать.Вот команда:
java -Xms64m -Xmx2048m
Я понимаю, что синтаксис команды не в порядке
Usage: java [-options] class [args...]
(to execute a class)
or java [-options] -jar jarfile [args...]
(to execute a jar file)
Также читайте этот ответ, но не совсем ясно
Также я читаю вслух редактирование catalina.sh, но если я vim этой командой, я не получаю никакой части, где размер кучи или Xms можно редактировать, поэтому вопрос будет:
Также прочитайте это но я не хочу устанавливать это для любой банки, хочу сделать это для всех военных приложений на сервере.
Итак, прочитав так много постов и ответов, и не имея лучших знанийв Java, как это лучший способ сделать это?Как правильная команда?после запуска этой команды максимальный размер кучи настроен на хорошее?Я также знаю, что на стороне кода разработчики также должны проверить свою часть, так как я также читал, что эта проблема связана не только с аппаратной и Java-конфигурацией.Спасибо!