TeamCity,Maven和Jetty流程之间有什么关系?

时间:2018-06-08 22:28:12

标签: java maven jetty out-of-memory teamcity

我认为是

直到最近,我才认为当我在TeamCity的一个代理上开始构建时,代理会生成一个新进程来启动maven,而maven也会生成一个新进程来启动Jetty。即,所有这三个参与者都在三个不同的Java进程中运行。

我认为现在是

只有一个进程(TeamCity代理),并且所有内容(Maven,Jetty)都在此进程中运行。

为什么我认为是这种情况

最近我们项目中的一个集成测试导致了permgen空间中的OutOfMemory问题。我试图为Jetty和运行集成测试的部分增加内存和permgen空间,最多可达2GB。换句话说,我将以下行添加到pom.xml(分别和一起):

<configuration>
   <argLine>-Xmx512M -XX:MaxPermSize=256M</argLine>
</configuration>

类似于Jetty,只有jvmArgs。但是,这并没有解决问题(即使使用2G内存设置)。 将此配置(即-Xmx512M -XX:MaxPermSize=256M)添加到Teamcity确实解决了这个问题。

因此,现在我认为提到的实体在同一个进程中运行,并且(至少在内存方面)只有外部进程(即TeamCity)的配置很重要。

问题

  • 我的第二个假设是否正确,即一切都在一个进程中运行(因此忽略了在pom.xml中配置的额外内存)?
  • 如果假设是错误的,那么为什么我的测试中会忽略额外的内存设置?

0 个答案:

没有答案