У меня есть сервер Tomcat, который обслуживает множество веб-приложений, каждое со множеством сервлетов. Иногда одному сервлету одного веб-приложения не хватает памяти, а затем весь Tomcat дает сбой с ошибкой Java «Недостаточно памяти», и мне приходится перезапускать его.
Есть ли способ изолировать сервлет, чтобы при его запуске из памяти не происходили сбои всех других приложений?
В настоящее время я запускаю Tomcat 7 в Windows, но скоро могу перейти на Linux, поэтому ответы для обеих платформ приветствуются.
Нет, нет. Вам необходимо либо:
В Linux я видел, что сообщения OOM «обычно», я снова говорю «обычно», указывают на больший размер памяти. Это означает, что либо увеличьте ОЗУ, либо получите больше места для подкачки. Первый вариант предпочтительнее.
Архитектура системы также имеет значение, но то, что я видел, это обычно проблема определения рабочей нагрузки. Это означает, что нужно запускать меньше приложений, создавать меньшую нагрузку или получать больше памяти.