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クライアントライブラリで書き込む
- ストリーミングアップロードを使用
- ファイルを分割してアップロード