在了解运行容器时如何计算内存利用率方面需要帮助。
假设我们有一个基于 Ubuntu 18.04 的容器,我们在另一个 Ubuntu 18.04 中运行该容器,该操作系统是相同的。有以下选项 -
docker run -it -p 8080:8080 --cpus 2 --memory 2048m
现在这里的问题是,当我们在带有容器的本地机器上运行相同的进程时,它在没有 OOM 的情况下工作得非常好。但是,当我们将相同的容器和进程放入谷歌云运行的那一刻,容器就退出了内存。所以这里的问题是有没有办法通过在 cloudrun 上运行时将系统更改为任何其他平台来解决这个问题?
最佳答案
但是,如果您的代码(或您导入的模块,例如 Google Cloud 客户端库)在您的笔记本电脑和已部署的应用程序上遵循不同的代码路径,这也可能是 OOM 的原因。
ubuntu:18.10
image 不提供内存优化(或使用共享动态库缓存)。它只是让您的应用程序使用该基础镜像上可用的二进制文件和动态库,并使用该发行版的包管理器。同样,您无法控制 Cloud Run 在其上运行容器的主机。
另请注意,Cloud Run 的当前内存限制为 2 GB,但很快就会增加到 4 GB。
关于docker - Cloud Run 上的容器内存管理和 OOM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62877877/