Jenkins build抛出内存不足错误

Jenkins build抛出内存不足错误,jenkins,continuous-integration,out-of-memory,Jenkins,Continuous Integration,Out Of Memory,我们让Jenkins在ec2实例上运行。执行生成时,我们会看到以下错误: 17:29:39.149 [INFO] [org.gradle.api.Project] OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x00000007ac000000, 234881024, 0) failed; error='Cannot allocate memory' (errno=12) 17:29:39.150 [INFO] [org.g

我们让Jenkins在ec2实例上运行。执行生成时,我们会看到以下错误:

17:29:39.149 [INFO] [org.gradle.api.Project] OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x00000007ac000000, 234881024, 0) failed; error='Cannot allocate memory' (errno=12)
17:29:39.150 [INFO] [org.gradle.api.Project] #

17:29:39.150 [INFO] [org.gradle.api.Project] # There is insufficient memory for the Java Runtime Environment to continue.

17:29:39.150 [INFO] [org.gradle.api.Project] # Native memory allocation (malloc) failed to allocate 234881024 bytes for committing reserved memory.
我研究了这个主题,并尝试了各种设置,如增加堆内存、ram和置换。以下是我在Jenkins上的当前内存设置:

-Xms256m -Xmx2048m -XX:MaxPermSize=512m

有没有其他我遗漏的东西导致了OOM

这不是JVM级别的内存问题,而是OS级别的内存问题。JVM试图分配224MB的内存,但在操作系统级别上,这部分内存不可用。当JVM的-Xmx设置大于系统中的可用内存量时,就会发生这种情况。检查操作系统中的可用内存量,或者限制当前JVM的内存,使其与可用内存相适应,或者尝试释放内存(通过限制其他进程使用的内存量),或者尝试使用内存更多的EC2实例。

我已经解决了同样的问题。(我有ec2、t2.micro、Ubuntu14、Jenkins、Tomcat和Maven)。 默认情况下,您没有交换空间。 要确认这一点:

free -m
加一些就行了。尝试使用1 GB作为开始

sudo fallocate -l 1G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
再次检查:

free -m

有关更多详细信息,请看

我怀疑Jenkins内存不是这里的问题,而是gradle进程(它在自己的jvm上运行)。尝试增加Gradle的内存(Gradle_选项=-Xmx512m…)并再次测试。我已将Gradle_选项设置为-Xmx2048m,但仍然存在内存不足问题。我对Gradle不太熟悉。。。也许它派生了一个新的jvm,这就是崩溃的原因。。。还有-你有足够的系统内存吗?工作得很好!!