我有一个进程需要大量内存,因为它从 GCS 下载文件、分析文件,然后将一些输出写回 GCS。此 Cloud Run 服务的端点本质上在 GCS 中获取文件 ID。如果我在一秒钟内多次访问此端点,我会收到内存最大错误并且每个请求都会终止。我将 Cloud Run 服务设置为 2GB,这是可用的最高选项。这个内存是否在所有请求之间共享?对于这种类型的工作负载,Cloud Run 是不是错误的服务?
答案1
我不确定您在分析文件时执行的工作量类型,但可能有点密集。例如,Cloud Run 最大为 2GB。Cloud Functions 也是 2GB。App Engine Standard 也是 2GB。但是,App Engine 弹性和计算引擎限制要高得多。您也可以使用定价计算器针对每个选项查看最大值。顾名思义,Compute Engine 可用于进行繁重的分析。但哪个最好取决于您的工作流程,这是一个非常开放的问题。
答案:
- 所有请求都共享这个内存吗?它是按实例扩展的内存,但是如果您的文件作为单个请求进入,那么我认为这就是它达到极限的原因。
- 对于这种类型的工作负载,Cloud Run 是不是不合适的服务?如果这是一个同步密集型流程,那可能就是错误的
希望这可以帮助。