詹金斯 - > JUnit在Linux上抛出OutOfMemoryError PermGen

时间:2014-08-29 13:00:12

标签: linux ant junit jenkins

我在构建期间使用Jenkins在Linux上运行数千(10K)的Junit,但它正在抛出OutOfMemoryError。

/builds/build.xml:113: java.lang.OutOfMemoryError: PermGen space
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:791)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:634)
    at 

为configure上的该作业的JUnit设置了以下JVM配置 - > “调用蚂蚁” - >预先

Xms512m -Xmx1024m -XX:MaxPermSize=1024m

即使将PermGen和HeapSize增加到3072m之后,它仍然在同一个测试中失败。

我在错误的地方进行配置吗? Jenkins是否限制我增加调用ant配置超出一定限度? Jenkins配置是否还需要增加以影响JUnit ant配置?如果是,有人可以建议如何增加Jenkins堆和PermGen配置吗?

1 个答案:

答案 0 :(得分:1)

如果出现PermGen space错误,请使用Xms& Xmx参数不会影响错误。我建议您将这些选项添加到Jenkins启动脚本中,而不是在Build > Invoke Ant > Advanced... > Java Options中设置选项。

-XX:PermSize=512m -XX:MaxPermSize=1024m

如果需要,请尝试增加MaxPermSize值。