Jenkinsプラグイン探訪 - Disk Usage

はじめに

ほとんどディスクを消費しないジョブもあれば、一度のビルドでかなりディスクを消費するジョブもあります。
「ギリギリだけど、なんとかなると思っていたら、ディスクフルになってしまった」、「いつもと違うノードが動いて、ディスクフルになってしまった」などといったことが発生するかもしれません。
そこで、この記事では、このような状況を改善するための一手段としてDisk Usageプラグインを紹介したいと思います。

なお、このプラグインは、簡潔に述べると、

  • ジョブごとに
  • ビルドを実行したノードの「workspaceディレクトリ」または
  • マスターノードの「buildsディレクトリ」が
  • どれだけディスクを消費しているのか

を調査するための機能を提供します。

インストール

Disk Usage Pluginの名称と関連URLは次のとおりです。

プラグイン Wiki URL ダウンロード URL GitHub URL
Disk Usage Plugin http://wiki.jenkins-ci.org/display/JENKINS/Disk+Usage+Plugin http://updates.jenkins-ci.org/download/plugins/disk-usage/ https://github.com/jenkinsci/disk-usage-plugin

機能概要 (デフォルト状態)

Disk Usageプラグインの機能概要は次のとおりです。

  • 360分ごとに全ジョブに対して、最新ビルドが実行されたノードの「workspaceディレクトリ」のディスク使用量を計測します。
  • 360分ごとに全ジョブに対して、マスターノードの「buildsディレクトリ」のディスク使用量を計測します。
  • Jenkinsの管理権限をもつユーザは、「Disk usage」メニューから「Disk usageの確認画面」を表示します。

    

  • Jenkinsの管理権限をもつユーザは、手動で全ジョブの「workspaceディレクトリ」と「buildsディレクトリ」のディスク使用量の計測を開始することもできます。
  • 「Disk usageの確認画面」には、最終計測時点の「workspaceディレクトリ」と「buildsディレクトリ」のディスク使用量が表示されます。

    

  • 「各ジョブのページ」にも、最終計測時点の「workspaceディレクトリ」と「buildsディレクトリ」のディスク使用量が表示されます。
  • 「各ジョブのビルド履歴」には、「buildsディレクトリ」内の各ビルドに対応するディレクトリのディスク使用量が表示されます。

    

機能詳細と注意事項

Disk Usageプラグインの機能詳細は次のとおりです。

  • Jenkinsのシステム設定で、[Disk usage]セクションの[Show disk usage trend graph on the project page]を有効にすると、「各ジョブのページ」にディスク使用量の推移グラフが表示されます。

    
    

  • その他は「機能概要 (デフォルト状態)」を参照してください。


注意事項は次のとおりです。

  • ジョブがビルドされるタイミングと、ディスク使用量が計測されるタイミングは、完全に独立しています。
    例えば、ビルド#8の時点で計測された後に、しばらく計測されないままビルドが何回か行われ、次にビルド#11の時点で計測されるということもありえます。
  • 「workspaceディレクトリ」のディスク使用量は異なるノードで計測される可能性があります。
    例えば、最終計測時点の最新ビルド#11はノードBでビルドされ、前回計測時点の最新ビルド#8はノードAでビルドされた場合、「Disk usageの確認画面」と「各ジョブのページ右上」には、ノードBの「workspaceディレクトリ」のディスク使用量のみが表示されます。また、「各ジョブのページ」に推移グラフを表示した場合、ノードAとノードBで計測された「workspaceディレクトリ」のディスク使用量が、混在して表示されます。
  • 「Disk usageの確認画面」には、全ジョブの「workspaceディレクトリ」と「buildsディレクトリ」のディスク総使用量が表示されます。
    「buildsディレクトリ」の総使用量はマスターノードで消費されているディスク使用量を表すので意味がありますが、「workspaceディレクトリ」の総使用量は複数のノードでビルドが実行された場合に意味が薄れてしまいます。

利用のポイント

  • ビルド履歴に表示されるビルドごとのディスク使用量を用いて、「ビルドの保存日数」や「ビルドの保存最大数」の適正値を見積もることができます。
    例えば、ビルドごとのディスク使用量が少ないものは日数ベース、ビルドごとのディスク使用量が多いものは保存最大数ベースでで古いビルドを破棄するなどの判断ができます。
  • 「workspaceディレクトリ」のディスク使用量を用いて、新しく追加するノードに最低限必要なディスク使用量を見積もることができます。
  • 「workspaceディレクトリ」のディスク使用量の見方には注意が必要です。特に、特定のノードでビルドしないジョブは見方に注意してください。

おわりに

Disk Usageプラグインのバージョンは現時点で0.12です。そのためか、見積もりをする上で役立つポイントはあるものの、まだ洗練されているとは言えません。このプラグインは少し軽い気持ちで使う必要があります。
『ビルドごとの「workspaceディレクトリ」のディスク使用量は、今までにビルドを実施したことがある全ノードを対象にして測れる必要がある』といったきめ細かさが必要になる方にはお奨めできません。