You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google Cloud Run+FastAPI大文件上传:1GB实例能否承载10个1GB上传请求?

问题分析与结论

核心结论

配置2vCPU、1GB RAM的Cloud Run实例完全无法正常处理10位用户同时上传1GB文件的请求,会触发磁盘空间耗尽、内存溢出,最终导致实例被终止,所有上传请求失败。

具体原因拆解

  • Cloud Run临时磁盘限制:Cloud Run每个实例的临时目录/tmp容量为实例内存的50%,也就是1GB内存实例对应512MB的/tmp空间。而FastAPI的UploadFile默认使用SpooledTemporaryFile,当上传文件大小超过10MB(Starlette默认阈值)时,会将超出部分写入/tmp目录。单个1GB文件就需要远大于512MB的磁盘空间,第一个上传请求写到512MB时就会触发"磁盘空间不足"错误,后续所有上传也会跟着失败。
  • 内存资源耗尽:每个上传请求的前10MB会暂存在内存中,10个并发请求就会占用100MB内存,再加上Hypercorn进程、FastAPI本身的内存开销,以及系统页缓存(用于磁盘读写)的占用,很快会触及1GB的内存上限。当内存使用率超过阈值时,Cloud Run会强制终止实例,中断所有正在处理的请求。
  • 请求超时风险:即使忽略磁盘和内存问题,Cloud Run默认请求超时为300秒(最长可配置为900秒),1GB文件的上传速度受限于用户带宽和Cloud Run的网络入口带宽,大概率会在上传完成前触发超时,导致请求失败。

补充说明

你提到启用HTTP/2后Cloud Run的上传限制看似消失,但这只是突破了HTTP/1.1的部分传输限制,Cloud Run的实例资源限制(内存、临时磁盘)依然生效,无法支撑大文件的并发上传场景。

内容的提问来源于stack exchange,提问作者Daniele Carriere

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 08:00:13