У моего клиента есть веб-сервер Windows 2008 с 64 ГБ памяти.
Мне нужно развернуть систему моей компании (которая работает на Java) на сервере и подключиться к их существующей базе данных Itanium.
Причина, по которой выделяется такой большой объем памяти, заключается в том, что наша система использует большой объем памяти, в которой информация записывается в базу данных, но данные хранятся в памяти для быстрого доступа. Продукт, похожий на EHCache.
Прошлый опыт вызывает опасения:
«Чтобы Java работала эффективно, размер каждого экземпляра Java должен составлять около 2 ГБ, иначе действие сборщика мусора Java приведет к сокращению времени отклика»
Вышеупомянутая проблема все еще актуальна для последней версии JDK 1.6 или применима больше?
Пока я работал с JDK 1.4, я смягчил ограничение размера Java-памяти, развернув несколько веб-серверов с памятью не более 2 ГБ.
Должен ли я запускать только один большой сервер или несколько серверов с ~ 2 ГБ или оперативной памятью каждый?
Я предлагаю смешать оба ваших варианта. Только представьте, что перезапускаете толстого кота, когда он вернется, это вызовет некоторое время простоя и замедлит работу.
Я предлагаю вам хранить стабильные приложения в одном коте с большим объемом памяти, а в другом, которые требуют большего внимания / частых изменений, должны быть разделены.
Другими словами, подход должен основываться на стабильности / качестве обслуживания, а не на товарах (представьте, что перезапускаете 20 котов).