Java OpenShift上SpringBoot和Vert.X应用程序的推荐容器/机架CPU大小

Java OpenShift上SpringBoot和Vert.X应用程序的推荐容器/机架CPU大小,java,docker,jvm,kubernetes,openshift,Java,Docker,Jvm,Kubernetes,Openshift,我们使用OpenShift 3.6作为云PaaS,我正在测试连接到Couchbase集群的Spring Boot和Vert.X应用程序。可用的默认POD大小为250毫芯X 1 GB、400毫芯X 1.5 GB和1芯X 3 GB 当我尝试部署应用程序(Spring Boot/Vert.X)时,我观察到250毫芯吊舱的引导时间>2-3分钟,而1芯吊舱的引导时间>45秒。因此,Couchbase引导在250millicore POD上花费了大量时间,这违反了默认的连接超时,并导致应用程序崩溃 如果我增

我们使用OpenShift 3.6作为云PaaS,我正在测试连接到Couchbase集群的Spring Boot和Vert.X应用程序。可用的默认POD大小为250毫芯X 1 GB、400毫芯X 1.5 GB和1芯X 3 GB

当我尝试部署应用程序(Spring Boot/Vert.X)时,我观察到250毫芯吊舱的引导时间>2-3分钟,而1芯吊舱的引导时间>45秒。因此,Couchbase引导在250millicore POD上花费了大量时间,这违反了默认的连接超时,并导致应用程序崩溃

如果我增加超时时间,应用程序将启动,但在执行任何事务时,应用程序都会运行缓慢。我可以使用1 X 3的吊舱,但这会增加成本。然而,我似乎没有任何问题的记忆使用

Q1)JVM在启动期间的CPU依赖性是什么(旋转新线程、在内存中处理、类加载等)

问题2)我知道JVM在启动过程中是资源密集型的,但是是否有一个最小的建议机架大小,用于应用程序正常运行的堆栈

问题3)如果一个Java应用程序/JVM的默认要求是一个更高的POD大小,那么它是否违背了能够将其作为一个轻量级的微服务使用的概念

我已经调整了JVM参数、Xmx、Xms和不同的GC组合,如G1GC、ParallelGc等(看看它是否会以不同的方式运行),但仍会经历相同的引导时间。唯一似乎有影响的是CPU的大小

弹簧靴v2.1 OpenShift v3.6 Couchbase v5.1 Java v1.8.161 CB SDK 2.5.7


在应用程序生命周期的初始阶段,这似乎占用了大约30%的CPU容量。

您好,在Openshift上,您可以设置请求和限制值。对于我的Spring boot应用程序,我已经设置了允许的最大on限制值,因为对于Spring boot JVM,您拥有的CPU越多,启动越快。然后,我将请求设置为足以满足我的应用程序标称流量。我已经一步一步地写下了我的应用程序的大小。这应该可以回答您的问题。

只需测量哪些功能有效,然后应用相应的设置即可。