2016-05-19 62 views
9

最近Jenkins 1.6から2.5にアップグレードしました。私がこれをした後、300%以上のCPU使用率を覚えました(4コアしかないので、400%以上になるとは思わない)。私はこの、but here's a thread dumpのデバッグを開始する場所がわからないんだけど、トップ/ホテルトップからいくつかのスクリーンショット非常に高いCPU使用率で動作するJenkins

ホテルトップは htop

トップ: top

+0

すべてのプラグインをアップグレードしましたか? –

+3

[visualvm](https://visualvm.java.net/profiler.html)でプロファイリングすると、何かが明らかになる可能性があります – vlp

答えて

8

私の話では、いくつかのジョブには何千もの古いビルドがあったということでした。これはJenkins 1.6ではうまくいきましたが、2.5の問題です(ジョブ概要ページを表示するとJenkinsがすべてのビルドをメモリに読み込もうとしているようです)。これを修正するために、問題のジョブusing this strategyから古いビルドのほとんどを削除してから、ジェンキンを再ロードしました。チャームのように働いた!

また、この問題を防ぐために、「古いビルドを破棄する」プラグインを設定して、最新のビルドを50個だけ保存するように設定しました。

1

2.5は開発リリースのようです、 1.6は長期サポート版です。したがって、出血エッジバージョンを使用する際には、退行を期待するのが理にかなっています。この質問に対する恩恵は、他のユーザーもこれを経験しているという証拠です。解決策は、Jenkinsバグトラッカーのバグを報告することです。あなたは一時的に良い既知のバージョンにダウングレードすることができます。

3

リクエストが到着するたびに、Jenkinsは要求を処理するためにいくつかのスレッドを生成します。 Jenkinsをアップグレードした後は、その時点でハイスロットルで呼び出された可能性があります。 Plzは次のシナリオながらジェンキンスサーバのCPUとメモリの使用状況を確認してください。

  • ジェンキンスさんはアイドル状態であり、他のアプリケーションがサーバー上で実行されていません。
  • ビルドがスケジュールされ、他のアプリケーションがサーバー上で実行されていません。

そして、ジェンキンスさんや他のアプリと並列に実行されているジェンキンスは本当に迷惑を作っているかどうかを判断するためにあなたを助けることができる行動を比較します。

@vlpが述べたように、Jstad構成を使用してJVisualVM経由でJenkinsアプリケーションを監視して、フックインしてみてください。このlinkを参照してJstadでJvisualVMを構成してください。

+0

この回答の追加情報サーバーでジョブをスケジューリングして実行している場合は、システムに負荷がかかります。次に、jenkinsサーバーをそれらのジョブからオフロードしてスレーブノードに移動し、サーバーのノード構成で実行者の値を0に保つ必要があります。 –

関連する問題