#java #tomcat #garbage-collection #jvm
#java #tomcat #сбор мусора #jvm
Вопрос:
Есть ли какие-либо причины, по которым Tomcat не должен запускаться в JVM с огромной памятью виртуальной машины? Знаете ли вы какие-либо цифры или какие-либо причины, по которым желательно иметь несколько экземпляров tomcat на одном хосте вместо одного?
На мой взгляд, это зависит от производительности используемого GC. Но, возможно, есть и другие причины, по которым tomcat должен жить в виртуальной машине с выделенным не слишком большим объемом памяти. Есть ли какие-либо причины, по которым было бы целесообразно иметь несколько экземпляров tomcat на одном хосте только для уменьшения объема памяти отдельных виртуальных машин?
Ответ №1:
Пара идей, связанных с преимуществом нескольких серверов / меньшей кучи по сравнению с одной / огромной кучей:
- У вас будет единственная точка отказа, если вы используете одну машину — у вас могут быть ошибки Tomcat или некоторые ошибки в развернутых приложениях, что требует перезапуска JVM (время простоя несколько секунд / минут).
- Большая коллекция gargabe займет больше времени в огромной куче по сравнению с меньшей.
Комментарии:
1. Это все еще верно (2.) для нового G1 GC?
2. @lewap, если G1 необходимо выполнить полное уплотнение GC , это будет еще медленнее, но основная идея заключается в том, что этого делать не следует.