2014-08-29 64 views
1

我在構建時使用Jenkins在Linux上運行數千(10K)Junit,但拋出了OutOfMemoryError。Jenkins - > JUnit在Linux上拋出OutOfMemoryError PermGen

/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 

以下JVM配置設置的JUnit上設定的工作 - > 「調用Ant」 - >即使增加PermGen的和HEAPSIZE直到3072米後推進

Xms512m -Xmx1024m -XX:MaxPermSize=1024m 

,它失敗在相同的測試。

我在配置錯誤的地方? 是詹金斯限制我增加調用螞蟻配置超出一定的限制? Jenkins配置是否也需要增加才能生效JUnit ant配置?如果是的話,有人可以建議如何增加詹金斯堆和PermGen配置?

+0

我希望'-'(減號)在上面的行中Xms之前缺少的符號只是一個錯字。 – Technext 2014-08-29 14:04:55

+0

您的堆棧跟蹤未完成。它來自詹金斯還是螞蟻? Permgen錯誤與測試次數無關。它通常與您加載到JVM的類的數量有關。所以如果你的螞蟻有很多罐子,或者詹金斯有很多插件......它可以來自任何工具。 – Jayan 2014-08-30 16:25:50

回答

1

當它是一個PermGen space錯誤,使用Xms & Xmx參數不會影響錯誤。我建議您將這些選項添加到Jenkins啓動腳本中,而不是在Build > Invoke Ant > Advanced... > Java Options中設置選項。

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

嘗試增加MaxPermSize值,如果需要的話。

+0

@Mukul:你試過這個建議嗎? – Technext 2014-08-31 04:54:45

相關問題