Сбои в сервлете, занимающие много памяти
У меня есть сервер Tomcat, который обслуживает много веб-приложений, каждый из которых имеет множество сервлетов. Иногда одному сервлету одного веб-приложения не хватает памяти, а затем весь Tomcat падает с ошибкой Java "Out of Memory", и мне приходится перезапускать ее.
Есть ли способ изолировать сервлет, чтобы при запуске памяти он не сбивал все другие приложения?
В настоящее время я запускаю Tomcat 7 в Windows, но вскоре могу перейти на Linux, поэтому ответы на обе платформы приветствуются.
2 ответа
Нет, нет Вы должны либо:
- Хватит так много памяти
- Дайте Tomcat больше памяти, или
- Установите его в своем собственном экземпляре Tomcat, чтобы при сбое он не забирал другие ваши веб-приложения.
В Linux я видел, что сообщения OOM "обычно", я снова говорю "обычно", указывают на больший объем памяти. Это означает либо увеличение оперативной памяти, либо увеличение пространства подкачки. Первый вариант является предпочтительным.
Архитектура системы также имеет значение, но то, что я видел, это обычно проблема определения рабочей нагрузки. Это означает, что вы запускаете меньше приложений, генерируете меньше нагрузки или получаете больше памяти.