В моей системе используется ядро третьей части, встроенное в нативные библиотеки (C ++) с верхним уровнем J2EE, работающим на Tomcat 6. Поставщик предусматривает 32-битный JDK и в целом приложение очень требовательно к памяти.В настоящее время мы работаем на Windows x64 с 32-битной JVM.По сути, JVM зависнет, как только виртуальный размер приблизится к 32-битному пределу адресации в 2 ГБ.
Вопрос. Время от времени сторонние платформы будут делать большие запросы на память, и это увеличивает выделенный виртуальный размер.на сервере.Выделенный виртуальный размер никогда не восстановится, даже если кажется, что память, которой ядро сокращает свои потребности в памяти.В типичном развертывании Tomcat Виртуальный Размер восстанавливается когда-либо автоматически или он всегда действует как высокий уровень воды, который продолжает расти?Есть ли способ сказать JVM, чтобы он пытался динамически уменьшить виртуальный размер?
Я подозреваю, что виновато собственное ядро стороннего производителя, но мне нужно изучить все наши варианты.
К сведению - AWE в Windows - неочевидный вариант, поскольку поставщик официально не поддерживает какие-либо JVM, поддерживающие AWE.Миграция на Linux также не простой путь, но рассматривается.