大きなGitリポジトリをJenkinsで扱うコツ 〜Copy on Writeを使ったディスク節約術〜

タグ:
日時:
2022年08月25日(木)16時40分〜17時05分
形式: ショートセッション(25分)
受講スキル:
- 大きなGitリポジトリを使ってCIビルドをしている経験、興味がある方 - Jenkinsの運用の経験、興味がある方 - macOSで同一内容ファイルのディスク領域を節約した事例に興味のある方
受講者が得られるであろう知見:
- 大きなGitリポジトリを運用するときに気をつけるべきポイント - Jenkinsのジョブで大きなGitリポジトリを使うときの工夫 - macOSで同一内容のファイルを複数保持している場合のディスク節約術
セッションの内容

ゲームアセットのGitリポジトリ、モノリポ運用しているGitリポジトリは巨大になりがちです。大きなGitリポジトリをクローンすると、記録されている歴史を全部取得するため、ネットワーク通信量・通信時間が大きくなります。またローカルに保存された.gitディレクトリの容量も大きくなります。この結果、JenkinsのエージェントやGitHub Actionsのセルフホストランナーでは、ジョブのワークスペースによるディスク容量圧迫の原因になります。CIジョブでは大きなリポジトリを複数のジョブで利用することもあるでしょう。同一内容のコピーを複数保持することになり、問題にいっそう拍車がかかります。

本セッションでは大きなGitリポジトリをクローンするときの通信量・ディスク容量を節約するための、リポジトリの設定やgitコマンドのオプションの工夫を紹介します。また、macOSにあるcopy-on-writeの機能を利用して、同一内容のコピーをまとめることでディスクを400GB以上節約できた事例も紹介します。考えかたや注意点などもあわせて解説しますのでJenkins以外の環境でも役に立つでしょう。


講演資料

  • kaorumaeda-cedec2022.pdf

※資料のダウンロードにはログインが必要です。


講演者プロフィール

前田 薫

前田 薫
所属 : 株式会社 ディー・エヌ・エー
部署 : 品質本部品質管理部SWET第二グループ
役職 : エンジニア

リコー、レピダムを経て2017年に株式会社ディー・エヌ・エーへ入社。SWETグループにてゲームタイトルのCI/CD環境整備・サポートに従事。
学生時代の1990年代よりフリーソフトウェア黎明期のコミュニティー立ち上げに多く参加。Ruby+Perlにフォーカスした2001年のイベントにて、日本にライトニングトークを紹介した。

《講演者からのメッセージ》
CI/CDシステムの運用では、システムに関する多くの知識が必要になります。今回はGitリポジトリとディスク容量についての話です。あるプロジェクトでデータの更新が少ない・同一内容が複数置かれている、というデータの性質に対応して重複を減らすという対策ができたので、事例として紹介します。Jenkins以外の環境でも、データの性質を分析して対策するという考え方が役立つと思います。