Sprintboot应用程序部署在Marathon / Mesos中

时间:2016-04-01 07:26:57

标签: spring-boot mesos marathon

我打包了此存储库https://github.com/spring-cloud-samples/eureka提供的eureka server,并尝试在使用Marathon / Mesos管理的集群安装上启动它,并在其上设置了内存限制。

然而,如果我在Marathon中使用512MB启动应用程序需要100秒(每个从站有32GB的RAM)启动而不是12秒(我的mac)(16GB内存)。

即使配置Xms和Xms也无法解决问题。使用256MB更糟糕。

1 个答案:

答案 0 :(得分:0)

我们已经找到了这个,但不确定它是否可以应用于spring boot启动的tomcat

灵感来自

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

https://stackoverflow.com/a/33985214

以MB为单位的总内存

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

处理器计数

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

为GB

中的Xmx设置占用一半内存
MAX_PERM_MB="256"

MaxPerm硬编码为256M

Xmx/2048

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

的整数
PARA_GC=`expr ${CPU_COUNT} / 2`

ParallelGC是CPU的一半(舍入到较低的int)

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}"

ConcurrentGC是ParallelGC的一半

select t1.name, t2.favouritecolour as man_fav_col
from Table1 t1
left join Table1 t2
  on t1.managername = t2.name