【发布时间】:2018-02-13 08:44:37
【问题描述】:
我们在 Docker/Ubuntu 上运行 .NET Core 1.1 容器,托管 Web API。这些容器基于microsoft/aspnetcore:1.1.2,其中包含为 Ubuntu x64 平台发布的二进制文件,并在构建映像时复制进来,非常简单。
目前,我们的 Web API 也非常简单,最多只有几个控制器从 SQL Server 中提取数据。它们没有显着的缓存或任何不寻常的东西,但在运行时每个都使用 500-900 Mb 的 RAM。这不是由于内存泄漏 - 每个容器的内存使用量随着时间的推移是稳定的,在使用过程中上下变化 10-15Mb。
这种级别的 RAM 使用应该是完全没有必要的 - 我怎样才能减少它?
我已经查看了Docker container memory use 的问题,但它有所不同,目前没有答案。
【问题讨论】:
-
限制容器的最大内存量。大多数应用程序(包括数据库服务器)都会尝试获取尽可能多的内存来运行,然后查看您的应用程序是否可以在该限制内运行
-
是的,谢谢,这在一定程度上有效,但我看到容器没有使用更少的内存,内存只是移动到交换中,这会降低 API 的性能。
标签: ubuntu docker memory asp.net-core .net-core