コンテンツにスキップ

v0.20.2

0.20.0 以降の本番障害の修正が 1 件です。転写の探索で全プロジェクトディレクトリを 毎回掃引していた問題が、EFS のバーストクレジットを枯渇させてすべてのセッションを 低速化させていました。

  • agent が転写を探すたびに EFS 上の全プロジェクトディレクトリを ReadDir していました。 filepath.Glob("projects/*/<sid>.jsonl") は * を展開する際に projects/ を ReadDir し、続けて一致した各ディレクトリも ReadDir します。本番環境のプロジェクトディレクトリが 38 個ある状態で、1 つのワークスペース agent が毎秒 821 回のディレクトリ読み取りを発生 させ、配備全体の EFS バーストクレジットを枯渇させていました。修正ではプロジェクト ディレクトリの掃引結果をメモ化し、キャッシュが有効な間は再掃引を行わないことで EFS メタデータ I/O を約 99 % 削減します。

ECS 配備自体にやることはありません——コントロールプレーンのイメージを更新するだけで 0.20.1 の Console 修正は届きます。

0.20.1 と 0.20.2 の agent 修正を受け取るには、ワークスペースの利用者全員が ワークスペースを再起動する必要があります。 更新の前後を問わず走っていたワークスペース は旧版の agent バイナリのままで、Console に「再起動が必要」のバッジが出ます。