Google Cloud 运行 内存限制是否适用于容器大小?

Does Google Cloud Run memory limit apply to the container size?

云 运行 的内存使用来自文档 (https://cloud.google.com/run/docs/configuring/memory-limits)

Cloud Run applications that exceed their allowed memory limit are terminated.

When you configure memory limit settings, the memory allocation you are specifying is used for:

  • Operating your service
  • Writing files to disk
  • Running binaries or other processes in your container, such as the nginx web server.

容器的大小是否计入“运行您的服务”和内存限制?

我们打算使用可能已经接近内存限制的图像,因此我们想知道服务本身是否只能访问从限制中减去容器大小后剩下的内容

您部署到云端的容器映像的大小 运行 计入内存限制。例如,如果您的容器镜像是 3 GiB,您仍然可以 运行 在 256 MiB 内存环境中。

新文件写入本地文件系统,或者(显然)在您的应用程序中分配更多内存将计入容器的内存使用量。 (也许也很明显,但值得一提)操作系统将 "load" 你容器的入口点可执行文件到内存(好吧,执行它)。这也将计入可用内存。

云 运行 在这里私信。

只有您加载到内存中的内容才会计入您的内存使用量。因此,例如,如果你有一个 2GB 的容器,但只在其中执行一个非常小的二进制文件,那么只有这个会被算作已用内存。

这意味着如果您的图像包含很多永远不会加载的 OS 包(因为例如您继承自 a.big 基础图像),这没问题。