Windows 7 Ultimate に Jenkins をインストールすると、CPU 使用率が異常になる理由がいくつかあることに気付きました。
<オール>最近、v2.138 から v2.140 にアップグレードし、いくつかのプラグインを追加しました。ジョブがトリガーされるたびに、Jenkins Java 実行可能ファイルが CPU 時間の最大 60% を占めているという問題に気付き始めました。どのジョブも CPU バウンドではなく、外部サーバーからデータを取得するだけだったので、意味がありませんでした。 Jenkins サービスを再起動するだけで修正されました。アップグレードがきれいに完了しなかっただけだと思います.
Java ガベージ コレクションは、デフォルトのメモリ設定で実行すると、エラーをスローし、CPU を占有していました。やり過ぎかもしれませんが、思い切って Jenkins の Java ヒープ領域をデフォルトの 256 MB から 4 GB に増やしました。これは私にとってこの問題を解決しました。
手順については、このソリューションを参照してください:https://stackoverflow.com/a/8122566/4479786
結局のところ、私の問題は、いくつかのジョブに何千もの古いビルドが含まれていることでした。これは Jenkins 1.6 では問題ありませんでしたが、2.5 では問題です (ジョブの概要ページを表示すると、Jenkins がすべてのビルドをメモリにロードしようとする可能性があります)。それを修正するために、この戦略を使用して問題のあるジョブから古いビルドのほとんどを削除し、ジェンキンをリロードしました。魔法のように働きました!
また、これが再び発生しないように、「古いビルドを破棄する」プラグインを設定して、最新の 50 のビルドのみを保持します。
リクエストが来るたびに、Jenkins はいくつかのスレッドを生成してリクエストを処理します。 Jenkins をアップグレードした後、その時点でハイスロットルで起動した可能性があります。次のシナリオで、Jenkins サーバーの CPU とメモリの使用状況を確認してください:
- Jenkins はアイドル状態で、他のアプリはサーバー上で実行されていません。
- ビルドのスケジュールが設定されており、サーバー上で他のアプリが実行されていません。
また、Jenkins または他のアプリと並行して Jenkins を実行することが本当に問題を引き起こしているかどうかを判断するのに役立つ動作を比較してください。
@vlp が言ったように、フックする Jstad 構成を使用して JVisualVM 経由で jenkins アプリケーションを監視してみてください。Jstad を使用して JvisualVM を構成するには、このリンクを参照してください。