webdevqa.jp.net

ジェンキンス「ディスクスペースが低すぎる」問題を解決する方法は?

CentOSマシンにJenkinsを展開しました。Jenkinsは3日間正常に機能していましたが、昨日は「ディスクスペースが小さすぎます。残りは1.019GBです。」問題。

この問題を解決するにはどうすればよいですか?マスターを何時間もオフラインにしますか?

30
Eason

Jenkins UIからしきい値を簡単に変更できます(私のバージョンは1.651.3です):

[jenkins nodes preventing monitoring page]


更新:高いディスク容量を確保する方法

この機能は、空きディスク容量の少ないスレーブでの作業を防ぐことを目的としています。しきい値を下げても、一部のジョブが終了後に適切にクリーンアップされないという事実は解決されません。

構築しているものに応じて:

  1. ビルドのディスク出力が何であるかを理解していることを確認してください-可能であれば、出力をジョブワークスペースのみに制限してください。 workspace cleanup plugin を使用して、ビルド後のステップとしてワークスペースをクリーンアップします。
  2. プロセスが外部フォルダーにデータを書き込む必要がある場合は、ビルド後の手順でそれらを手動でクリーンアップします。

Alternative1-ジョブごとに新しいスレーブをプロビジョニングします(スポットスレーブを使用します-オンデマンドでマシンをオンザフライでプロビジョニングするために、異なるクラウドプロバイダーと統合する多くのプラグインがあります)

Alternative2-コンテナ内でビルドを実行します。ビルドが完了すると、すべてが破棄されます

23
orshachar

上記のソリューションに加えて、より「一般的な」方法があります-Linuxマシンから最大のスペースコンシューマを直接削除します。以下の手順を実行できます。

  1. Jenkinsマシン(PuTTY)へのログイン
  2. jenkinsのインストールパスにcd

ls -lartを使用して隠しフォルダーもリストします。通常、jenkinインストールは.jenkins /フォルダーに配置されます

[xxxxx〜] $ ls -lart

drwxrwxr-x 12 xxxx 4096 2月8日02:08 .jenkins /

  1. フォルダーのスペースをリストする

df -hを使用して、ディスク領域を高レベルで表示します

du -sh ./*/は、現在のパスの各サブフォルダーの合計メモリーをリストします。

du -a /etc/ | sort -n -r | head -n 10は、/ etc /のディスク容量を消費している上位10個のディレクトリをリストします

  1. 古いビルドまたは他の大きなサイズのフォルダーを削除する

enter image description here

通常、./job/フォルダーまたは./workspace/フォルダーが最大のフォルダーになります。中に入り、必要に応じてベースを削除してください(フォルダー全体を削除しないでください)。

rm -rf theFolderToDelete

12
Kevin Li

古いビルドを破棄することにより、ディスク容量の削減を制限できます。プロジェクト構成には、このためのチェックボックスがあります。

7
Guy Rixon

これは実際には正当な質問であるため、私はダウン投票を理解していません。おそらくスーパーユーザーまたはサーバーフォールトに属します。これは、ディスクのスペースが不足している場合のハード制限ではなく、ソフト警告しきい値です。

ジェンキンスも同じです。結論は、多くの小規模プロジェクトでは システムプロパティ と呼ばれるhudson.diagnosis.HudsonHomeDiskUsageChecker.freeSpaceThresholdを減らすことができます。

私はそれをテストしておらず、免責事項があると言って

互換性の保証なし

一般に、これらのスイッチは多くの場合実験的な性質のものであり、予告なく変更される場合があります。これらの便利なものを見つけたら、チケットを提出して公式機能に宣伝してください。

3
KCD

同じ問題が発生しました。私のjenkinsバージョンは2.3で、UIは少し異なります。それを誰かに役立つようにここに置く。両方のディスク容量のしきい値を5GBに増やすと、問題が修正されました。

enter image description here

3
icSapper