2013-02-07 37 views
30

My Jenkinsジョブのメモリが不足しているため、ログにjava.lang.OutOfMemoryErrorというメッセージが表示されます。しかし、私は、Ubuntuパッケージマネージャ​​、またはapt-getを使用してJenkinsをインストールしました.Jenkinsに割り当てられるヒープスペースの量を変更する場所はわかりません。Ubuntu上でデーモンとして実行しているときにJenkinsにもっと多くのヒープスペースを与える方法を教えてください。

答えて

57

はジェンキンスジョブの実行中に発生する可能性のあるOutOfMemoryErrorメッセージの2種類があります。

  • java.lang.OutOfMemoryError: Heap space - これはあなたが 必要がジェンキンスに割り当てられたヒープ・スペースの量を増加させることを意味するとき デーモンが開始。
  • java.lang.OutOfMemoryError: PermGen space - これは、Javaオブジェクトメタデータを格納するために割り当てられた生成領域の量を増やす必要があることを意味します。 を増やすと、-Xmxパラメータの値はこのエラーに影響しません。 Ubuntuの12.04 LTSで

/etc/default/jenkinsのライン10上のJAVA_ARGS設定のコメントを解除:

  • -XmxのJavaパラメータの値を増やし、より多くのJavaヒープ領域を追加します。これは、メモリ割り当てプールの最大サイズ(ガベージコレクションヒープ)を設定します。
  • は、あなたがもっと欲しい場合は、永久世代ヒープは、ユーザー・クラスに関するメタ情報を保持しているXX:MaxPermSize=512m(何か他のものと512を置き換えるパラメータを追加し、より多くのPermGenスペースを追加する。例えば

、この抽出物は、デフォルトからです

# arguments to pass to java 
#JAVA_ARGS="-Xmx256m" 

これは、あなたが1ギガバイトであることをヒープ領域を設定した場合、それがどのように見えるかです::

# arguments to pass to java 
JAVA_ARGS="-Xmx1048m" 
01新鮮ジェンキンスのインストール後

割り当てる容量が大きすぎると、オペレーティングシステムやその他のプログラムで使用できるメモリ容量が少なくなるため、ページングが過剰に発生する可能性があります(RAMとスワップディスクの間でメモリのスワップが行われるため、システムが遅くなります)。

あなたもMaxPermSpaceを設定した場合、あなたはパラメータの間にスペースを追加する必要があります):

# arguments to pass to java 
JAVA_ARGS="-Xmx1048m -XX:MaxPermSize=512m" 

変更を行った後、ジェンキンスWebインターフェイスから正常ジェンキンスを再起動、またはコマンドからの即時再起動を強制します - sudo /etc/init.d/jenkins restartで行

Javaの最大および永続世代ヒープサイズの理解に役立つ次のサイトが見つかりました。http://www.freshblurbs.com/blog/2005/05/19/explaining-java-lang-outofmemoryerror-permgen-space.html

+1

JAVA_ARGS = " - Xmx1048m -XX:MaxPermSize = 512m" –

+0

ありがとうございました!私は不足しているダッシュを追加しました。 –

+0

np、答えに感謝します。 –

21

CentOSの場合、Jenkins.xmlがデフォルトで配置されているディレクトリは、jenkins-1.579-1の場合は/ etc/sysconfig /です。1

JENKINS_JAVA_OPTIONS="-Djava.awt.headless=true -Xmx -XX:MaxPermSize="

+3

乾杯して、私はほとんど怒っていました – bmaher

+0

私の** openSUSE Leap ** 42.1(x86_64)でJenkinsのバージョン2.70の設定は '/ etc/sysconfig/jenkins'にあります – user1053510

+0

RedHat RHEL 7.4、jenkins 2.98 –

1

あなたがUbuntuのサーバを使用している場合は、最初のジェンキンスさんが使用しているどのくらいのメモリを参照しMonitoringプラグインをインストールします。たとえば、これは私がそれをインストールした後に見たものである:

enter image description here

すると、コマンドfree -mで、私は、サーバーのメモリサイズだったものを考え出しました。私の場合、16Gb。その情報を使用すると、私は/etc/default/jenkinsを開いて、変更:

JAVA_ARGS="-Djava.awt.headless=true"

8384は8GBです

JAVA_ARGS="-Xmx8384m -Djava.awt.headless=true"

に。それから私は、コマンド sudo service jenkins restartとジェンキンスを再起動してから、メモリの問題を得ていた仕事をトリガーした後に、物事ははるかに良い見て、仕事はこれと以降の実行で完了できます。私はあなたが秒を忘れてしまったと思います

enter image description here

関連する問題