首页 > 解决方案 > 为我的 Web 应用程序迁移到 Azure Linux 使内存使用量从 50mb 跃升至 300mb - 这正常吗?

问题描述

我一直在将很多服务迁移到 Azure Linux,因为我假设 Linux 更轻量级。现在我注意到几乎所有这些微服务都从大约 50mb 跃升至 300mb。他们中的很多人不使用大量缓存。

这正常吗?这对于 .NET 运行时而言是高昂的价格,还是包含在 Windows 基础架构上并可能共享的东西?这是静态惩罚还是 Linux 上的内存扩展更糟(不确定应该如何工作)。

请注意,我在普通的 Azure Web 应用程序上运行 - 而不是在 Docker 中。这可能与 Docker 有关吗?

要回答评论中的问题:

除了我使用 Visual Studio 发布到 Linux Web App 而不是基于 Windows 的 Web App 之外,基本上一切都完全相同。我可以通过将它们重新发布到不同的 Web 应用程序来并排运行它们,并且使用Process.GetCurrentProcess().PrivateMemorySize64.

更新 我刚刚上传了一个几乎是空的 ASP.NET 项目:

public class Startup
{
    public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    {
        app.UseRouting();

        app.UseEndpoints(endpoints =>
        {
            endpoints.MapGet("/", async context =>
            {
                double size = Process.GetCurrentProcess().PrivateMemorySize64;

                string size_str = Math.Round( size/ (1024*1024) ) + "mb";

                await context.Response.WriteAsync( size_str );
            });
        });
    }
}

标签: .netlinuxazuredockerazure-web-app-service

解决方案


推荐阅读