2016-09-07 1 views
2

Хотя сервер приложений Java будет расширять уникальную JVM для запуска нескольких (микро) сервисов, докционированная архитектура микросервисов java будет запускать JVM для каждой докционированной микросервисы. Учитывая 20+ java-микросервисы и ограниченное количество хостов, кажется, что количество ресурсов, потребляемых JVM на каждом хосте, огромно.Как эффективно доксоризовать микропроцессоры java

Есть ли эффективный способ решения этой проблемы? Возможно ли настроить каждую JVM для ограничения потребления ресурсов? Целью является ограничение накладных расходов на использование докеров в архитектуре микросервисов java.

+1

Вы ничего не просили. В чем дело? –

ответ

2

В каждой копии Docker и JVM используется память. Обычно наличие нескольких JVM на одном узле будет использовать разделяемую память, но это не вариант с докером.

Что вы можете сделать, это уменьшить максимальный размер кучи каждой JVM. Тем не менее, я бы разрешил как минимум 1 ГБ на изображение докера в качестве накладных расходов плюс ваш размер кучи для каждой JVM. Хотя это звучит как большая память, в наши дни это не так дорого.

Скажите, что вы даете каждой JVM кучу в 2 ГБ и добавьте 1 ГБ для докера + JVM, вам нужно, чтобы сервер на 64 ГБ запускал 20 JVM/докеров.

+0

Спасибо за ответ. Где я могу найти некоторые «случайные» значения для стека JVM? На самом деле, 500 МБ кажется в значительной степени достаточным для моей μS (даже в заряда). (Я проверяю его с помощью jvisualv). Поэтому меня впечатляют ценности, которые вы рекомендуете. – DouglasAdams

+0

@DouglasAdams у некоторых наших клиентов есть JVM с размерами виртуальной памяти 100 ТБ. Если у вас есть куча 0.5 ГБ на JVM, вы обнаружите, что вам нужно немного больше в голове. –

+0

@DouglasAdams Что вы подразумеваете под значениями для стека JVM? Вы имеете в виду, что такое значения по умолчанию? Если у вас небольшое количество потоков, это не требует настройки. –

Смежные вопросы