ショートセッション

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

講演形式
ショートセッション
講演時間
08月25日(木) 16:40 〜 17:05
講演ルーム
第2会場
受講スキル

- 大きなGitリポジトリを使ってCIビルドをしている経験、興味がある方

- Jenkinsの運用の経験、興味がある方

- macOSで同一内容ファイルのディスク領域を節約した事例に興味のある方

得られる知見

- 大きなGitリポジトリを運用するときに気をつけるべきポイント

- Jenkinsのジョブで大きなGitリポジトリを使うときの工夫

- macOSで同一内容のファイルを複数保持している場合のディスク節約術

セッションの内容

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

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

前田 薫

株式会社 ディー・エヌ・エー

品質本部品質管理部SWET第二グループ

エンジニア

講演者詳細を開く >

<講演者プロフィール>

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

<受講者へのメッセージ>

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