3

私はこれで機知に富み始めています。

Windows Server 2008 RC 2 ボックスの tomcat コンテナー内で Jenkins を実行しています。ここでは、いくつかの依存する社内プラグイン (10 個程度) を使用する大規模な Grails プロジェクトが進行中です。プロセスの一部は実行することです

grails compile

プロジェクトについて (jenkins で Grails プラグインを使用、Grails バージョン 1.3.7)

ジョブは問題なく開始されますが、このステップで次のエラーが発生します。

[groovyc] Compiling 103 source files to D:\jenkins\jobs\my-build-job\workspace\my-application\target\classes
Compilation error: java.lang.OutOfMemoryError: GC overhead limit exceeded

Grails プラグインの「パラメーター」フォーム フィールドで、この特定のビルド ステップにパラメーターを追加したり、Tomcat サーブレット コンテナーに Java パラメーターを追加したりできませんでした (通常、インターネットで推奨される Java は、この GC オーバーヘッド エラーを選択します)。以下は、サーブレットの wrapper.conf の一部です。

wrapper.java.additional.8=-Xmx2048m
wrapper.java.additional.9=-Xss256k
wrapper.java.additional.10=-Xms1024m
wrapper.java.additional.11=-XX:+UseParallelGC
wrapper.java.additional.12=-XX:-UseGCOverheadLimit
wrapper.java.additional.13=-XX:MaxPermSize=256m

誰かアイデア/提案はありますか?? このジョブに十分なメモリを与えるためにあらゆることを試みたように感じます (ボックスには 12 ギガの RAM があり、上で見られるように、ヒープ領域を 256 のような小さいものから増やし、2 ギガを使用するための PermGen 調整を行わず、 256M の PermGen! リソースの制約に文句を言うべきではありません!)

助けてください!

4

1 に答える 1

5

さて、私はこの問題に遭遇した人のための解決策を持っています。

WindowsのJAVA_OPTSは、設定して設定を維持するのが難しいようですが、JenkinsでEnvInjectプラグインを使用すると、次を使用できました: https ://wiki.jenkins-ci.org/display/JENKINS/EnvInject+Plugin

新しく追加された「BuildEnvironment」ステップの下で、

「ビルドプロセスに環境変数を挿入する」というラベルの付いたボックスをチェックします

そして、これを「プロパティコンテンツ」テキストボックスに追加します。

JAVA_OPTS=-Xmx1024m -XX:MaxPermSize=256m

それについての引用はありません!

前に述べたように、私は以前にシステム全体のJAVA_OPTS変数をWindowsに設定することでこれを解決しました(これはサーバーのニーズにはあまりにも多くのハックでした)ので、ここで仕事を成し遂げる方法はおそらくいくつかあります。

うまくいけば、これが他の欲求不満のWindows / Jenkins / Grailsユーザーに役立つことが証明されます!

于 2012-06-18T21:17:44.130 に答える