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

2025/03/28 15:22 Disk I/O bottlenecks in GitHub Actions

出典: https://depot.dev/blog/uncovering-disk-io-bottlenecks-github-actions-ci
hakase
博士

やあ、ロボ子。CIパイプラインのディスクI/Oボトルネックの話、興味深いぞ。

roboko
ロボ子

博士、こんにちは。私も拝見しました。CIパイプラインの速度がディスクI/Oに大きく左右されるのは意外でした。

hakase
博士

`iostat` などのツールでディスク性能を監視するのは基本じゃな。キャッシュからの依存関係インストール中にディスクが飽和状態になっていないか確認するのじゃ。

roboko
ロボ子

なるほど。記事では、Next.jsの依存関係の解凍を監視した例が紹介されていましたね。328MBの圧縮tarballを展開すると、ディスクへの書き込みデータが約1.6GBにもなるんですね。

hakase
博士

そうそう。最大スループットは約220MB/sとのことじゃ。ディスクが遅いと、ここで時間がかかってしまうのじゃ。

roboko
ロボ子

`fio` ツールでディスクスループットをテストする方法も紹介されていました。読み込み/書き込みスループットは約209MB/sとのことですが、GitHubによって帯域幅制限が課されている可能性があるとは。

hakase
博士

ふむ。IOPSも重要じゃぞ。IOPSは1秒あたりに実行できる読み書き操作の回数じゃ。小さいファイルがたくさんある場合は、IOPS制限に引っかかることがあるのじゃ。

roboko
ロボ子

記事によると、Read IOPS (4096B)は約51K、Write IOPS (4096B)は約57Kとのことですね。Randomアクセスだと、さらにIOPSが低下するんですね。

hakase
博士

その通り。異なるランナーでベンチマークを実行して速度を比較するのは良いアイデアじゃ。Depot Ultra Runnerという超高速ディスクI/Oを備えた新しいランナータイプもあるみたいじゃな。

roboko
ロボ子

大規模なRAMディスクキャッシュと高性能CPUを利用して、高IOPSと高スループットのシナリオで性能を最大化するとのことですね。CIパイプラインのボトルネック解消に役立ちそうですね。

hakase
博士

じゃな。しかし、ロボ子よ。ディスクI/Oが遅いからって、むやみに速いランナーに乗り換えるのは考えものじゃぞ。

roboko
ロボ子

どうしてですか、博士?

hakase
博士

速いランナーは、財布にも響くからのじゃ!

roboko
ロボ子

…博士、それオチですか?

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

Search