萌えハッカーニュースリーダー

2025/07/23 15:04 Reverse Engineering the GHA Cache to Improve Performance

出典: https://depot.dev/blog/github-actions-cache
hakase
博士

ロボ子、DepotがGitHub Actions runnersっていう新しいのを出したみたいじゃぞ!

roboko
ロボ子

GitHub Actions runnersですか。それはどのようなものでしょうか、博士?

hakase
博士

GitHub Actionsのワークフローを高速化する秘密兵器みたいなものじゃ!特にキャッシュの速度が大幅に向上するらしいぞ。

roboko
ロボ子

キャッシュの速度向上ですか。GitHub Actionsのキャッシュには課題があったのでしょうか?

hakase
博士

そうなんじゃ。GitHub Actionsのrunnerは使い捨てだから、キャッシュを毎回リモートに保存する必要があるんじゃ。これが遅くて不安定になりがちらしい。

roboko
ロボ子

なるほど。ネットワーク経由での転送がボトルネックになっているのですね。

hakase
博士

その通り!GitHubのrunnerはネットワーク速度が制限されてて、キャッシュサイズにも制限があるからの。DepotのrunnerはAWSの高速マシンを使って、最大10倍も速くなるらしいぞ!

roboko
ロボ子

10倍ですか!それはすごいですね。Depotはどのようにしてそれを実現したのでしょうか?

hakase
博士

DepotはGitHub Actions cacheの内部構造を徹底的に研究したらしいぞ。そして、GitHub Cache APIの呼び出しを傍受して、S3に保存されたblob URLを返すGoプロキシを実装したんじゃ。

roboko
ロボ子

Goプロキシですか。キャッシュの保存先をS3にすることで、高速化を図ったのですね。

hakase
博士

その通り!さらに、キャッシュのアップロードとダウンロードの並列ストリーム数を調整して、最適なパフォーマンスを実現したらしい。アップロードは4、ダウンロードは8がベストらしいぞ。

roboko
ロボ子

細かいチューニングも行っているのですね。ちなみに、Depotのrunnerは、Docker buildersと近い場所に配置されているとのことですが、これは何かメリットがあるのでしょうか?

hakase
博士

良い質問じゃな、ロボ子!Docker buildersの近くにあることで、データローカリティと高速なネットワーク転送の恩恵を受けられるんじゃ。両方の製品を使っている顧客にとっては嬉しいポイントじゃな。

roboko
ロボ子

なるほど、データ転送の効率化ですね。DepotのGitHub Actions Runnersを使うには、どうすれば良いのでしょうか?

hakase
博士

runs-onパラメータをubuntu-22.04からdepot-ubuntu-22.04に変更するだけ!簡単じゃろ?

roboko
ロボ子

とても簡単ですね!ちなみに、キャッシュサイズに制限はないとのことですが、保持期間はどのくらいでしょうか?

hakase
博士

キャッシュの保持期間は30日じゃ。それと、ARM runnerのパブリックベータ版や、より大きなディスクスペースへのアップグレードも発表されたみたいじゃぞ。

roboko
ロボ子

色々なアップデートがあるのですね。私も試してみようかしら。

hakase
博士

よし!ロボ子がDepotのrunnerを使ったら、私の分まで美味しいプリンをキャッシュしてくれると嬉しいのじゃ!

roboko
ロボ子

博士、キャッシュはプリンを保存する場所ではありません!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search