2016-04-01 5 views
3

Я упаковал eureka server, предоставленный данным репозиторием https://github.com/spring-cloud-samples/eureka, и попытался запустить его при установке кластера, управляемой с помощью Marathon/Mesos, на которой установлены ограничения на память.Приложение Sprintboot, развернутое в Marathon/Mesos

Тем не менее, если я запустил приложение в марафоне с 512 МБ, для начала работы вместо моего Mac (16 ГБ оперативной памяти) потребуется 100 секунд (каждый ведомый должен иметь 32 ГБ ОЗУ).

Даже при настройке Xms и Xms это не решает проблему. Использование 256 МБ еще хуже.

+0

Можете ли вы поделиться параметрами запуска? Я видел подобное поведение, связанное с источником рандомов, используемым по умолчанию. Можете ли вы попробовать: '-Djava.security.egd = файл:/dev /./ urandom'? Это плохо для безопасности, но в некоторых случаях это действительно приемлемо. –

+0

Кроме того, если вы используете Docker, у вас будет задержка, когда приложение будет запущено в первый раз. 512 МБ кажется немного низким для меня, каковы настройки, которые вы используете на своем MacBook? – Tobi

+0

@ daniel.eichten вот командная строка, которую я использую для запуска сервера eureka в mesos 'java \ -jar \ -Dspring.profiles.active = mesos \ -Xmx256m -Xms128m \ -XX: MaxMetaspaceSize = 64m \ * .jar \ --discovery.server.port = $ PORT0 \ --discovery.server.path =/discovery-server' с памятью 512 MiB и дисковым пространством 128 MiB. Я только что попробовал параметр 'security.edg', и он не меняет поведение. Увеличение количества процессоров до 2 делает время начала лучше, но это не то, что я хочу. Я хотел бы настроить таргетинг на 0,5 процессора и 128 Mib, если это возможно ... – Jiujiu

ответ

0

Мы обнаружили это, но не уверен, что он может быть применен к кот запущен пружинной загрузки

Вдохновленный

https://community.alfresco.com/docs/DOC-4914-jvm-tuning#w_generalcase

https://stackoverflow.com/a/33985214

Всего памяти в МБ

TOTAL_MEM_KB=`free | awk '/^Mem:/{print $2}'` 

Количество Процессор

CPU_COUNT=`grep '^processor\s:' /proc/cpuinfo | wc -l` 

Возьмите половину памяти для установки XMX в патенте Великобритании

XMS=`expr ${TOTAL_MEM_KB}/1000/1000/2` 

MaxPerm зашиты с 256M

MAX_PERM_MB="256" 

HeapRegion ниже INT раунд Xmx/2048

G1_HEAP=`expr ${XMS} \* 1000/2048` 

ParallelGC наполовину Количество CPU (округляется до нижних межд)

PARA_GC=`expr ${CPU_COUNT}/2` 

ConcurrentGC наполовину ParallelGC

CONC_GC=`expr ${PARA_GC}/2` 

JAVA_MEM="-Xmx${XMS}g -XX:MaxPermSize=${MAX_PERM_MB}M -XX:+UseG1GC -XX:MaxGCPauseMillis=1000 -XX:G1HeapRegionSize=${G1_HEAP} -XX:ParallelGCThreads=${PARA_GC} -XX:ConcGCThreads=${CONC_GC}"