У меня есть веб-приложения, которые работают на tomcat5 mysql и используют JVM, java и т. Д. ... они работают нормально, но каждый раз, когда он начинает получать около 300 МБ памяти для java.exe (сервер Windows), он падает, когдаделать запрос или что-нибудь, что занимает все пространство в оперативной памяти вообще.Но сам сервер машины имеет 16 ГБ оперативной памяти ....
Как это можно преодолеть?
Ошибка, которую я получаю, выглядит так:
ОШИБКА результирующего набора Исключение вобработка запроса (4): java.lang.OutOfMemoryError: Java heap space
, и если я убиваю задачу java.exe и перезапускаю процесс, он снова работает, пока java.exe не достигнет стены памяти объемом 300 МБ ....Я уже пытался установить xmx на что-то вроде 1600 МБ или больше, но безрезультатно и не имело никакого значения ....
Кто-нибудь знает, что происходит?
///////////////
ОБНОВЛЕНИЕ С КОММЕНТАРИЯМИ
все в порядкеэто что-то странное, что я понял, если я установлю его на 1024 МБ или ниже, это будет работать, и службы будут запускаться в services.msc на оконном сервере всех версий.но если я установлю его на что-то большее, даже на 1025 Мб, он не запустится, если я не сделаю точные кратные 24, например, 1024, 1048, 1072 и т. д. ... это будет продолжаться, пока не достигнет предела ...
На 32-битном Windows Server 2008, который имеет всего 4 ГБ, ограничение составляет около 1600 единиц, но, что удивительно, на 64-битном Windows Server 2008 r2 с тоннами памяти ограничение составляло всего лишь ~ 1200
Это те же самые tomcat5.exe и tomcat5w.exe, которые установлены как сервисы точно таким же образом ... так что это не имеет никакого смысла ...
Почему увеличение памяти после отметки 1024 МБ должно бытьс точным шагом 24 мб?и почему существует другая «стена», когда машина LOWER может достигать гораздо более высокой скорости (1600 МБ), чем машина с более высокой спецификацией с большим количеством оперативной памяти (~ 1200)
Я кое-что прочитал о JVMнужна постоянная память, но это просто чокнутый и не имеет никакого смысла вообще