Cloud RunでのGCSfuseメモリ制限

Cloud RunでGCSをGCSfuse経由でマウントして書き込む際、ファイルは一旦メモリにステージングされてから書き込まれる。

制限事項

  • Cloud Runのメモリ上限は32GB
  • GCSfuseはファイル全体をローカルメモリに一時保存する
  • 32GB以上のファイルは書き込めない

技術的背景

これはGCSfuse側の仕様による制限:

Local storage: objects that are new or modified are stored in their entirety in a local temporary file until they are closed or synced.

新規作成または変更されたオブジェクトは、クローズまたは同期されるまで、ローカルの一時ファイルに完全に保存される。

対策

大容量ファイルを扱う場合:

  • 直接GCSクライアントライブラリで書き込む
  • ストリーミングアップロードを使用
  • ファイルを分割してアップロード

参考