15

Jenkinsに障害が発生したケースがありましたが、Jenkinsの再デプロイ(JenkinsはTomcatのWebアプリです)以外は役に立ちませんでした。新しいジョブでさえPermGenスペースエラーで失敗しましたが、すべての設定は問題ありませんでした(-XX:PermSize可能な限りこれらすべてのパラメーター)。重要なのは、再配置後、すべてが魅力のように機能したことです。しかし、それは厳しい解決策です。ジェンキンス州をロールバックするためのいくつかのオプションがあるかどうか知りたかった。前もって感謝します。

更新:さて、そのようなことに直面するかもしれない人々のために、これが私が理解したことです。JenkinsをTomcatモジュールとしてデプロイする方が良いと書いた人は、おそらくどのような種類のプロジェクトデプロイメントの問題にも直面していませんでした(Jenkins Deployプラグインまたはtomcat-maven-pluginMavenのpom.xml)。Jenkinsを個別にインストールしたときに説明した問題はありませんでした。ふぅ!

4

6 に答える 6

34

PermGen スペース エラーで本当に重要な 1 つの設定は次のとおりです (正確にこれである必要があります)。

-XX:MaxPermSize=512m

1 つのダッシュ、2 つのBig X、Big-M、Big-P、Big-S、スペースなし、メガ単位のサイズ、小文字の m。それを台無しにすると、それは無視されます。PermGen の修正の 99% は、誰かが指示に正確に従わず、小さな m の代わりにメガバイトに Big-M を使用したか、前に 1 つではなく 2 つのダッシュを付けたためです。例。

また、512 MB は出発点にすぎません。システムに合わせて調整してください。

于 2012-06-21T13:57:41.937 に答える
6

私はかつて同様のエラーを経験しました: jenkins は確実なテストの実行を含む maven ビルドを実行していました。私が使用していた Maven のバージョン (V2 のようなもの) では、JVM メモリ オプションが確実なプロセス フォークに渡されず、これが原因でいくつかのテストが失敗することがわかりました。MAVEN_OPTS、JAVA_OPTS、どれも機能しませんでした。

settings.xml でメモリ オプションを直接渡すことになり、PermGen エラーはなくなりました。

私が使用したオプションは次のとおりです(アプリはかなり大きかったです):

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

于 2012-06-21T12:49:10.203 に答える
4

完全にテストされていない提案ですが、この回答は、Tomcatを起動するときに使用することを提案してい-XX:+CMSClassUnloadingEnabled -XX:+CMSPermGenSweepingEnabledます(完全に異なるコンテキストでの問題ではありますが)。ただし、この回答CMSPermGenSweepingEnabledは、 Java 6では不要であり、効果を発揮-XX:+UseConcMarkSweepGCするために使用する必要があることを示しCMSClassUnloadingEnabledています。

少なくとも-XX:+CMSClassUnloadingEnabled、根本的な問題が、TomcatインスタンスのPermGenスペースで不必要に維持されているクラスによって引き起こされていると仮定すると、トリックを実行できます。

于 2012-06-21T13:44:18.933 に答える
1

多分この質問はあなたを助けることができます:

Windowsでサービスとして開始されたときにJenkinsにより多くのヒープスペースを与える方法は?

そこにはいくつかの非常に良い答えがあります。

于 2012-06-21T12:03:37.890 に答える
0

にぶつかるJREJava 8助けになりました。デフォルトでは、Jenkins はホーム フォルダーの下にある を使用し、タスクJREによって呼び出されます。jenkins.xml

于 2016-12-06T02:47:08.983 に答える