asp.net Azure应用服务计划中的高RAM使用率,尽管单个应用服务消耗较少

wfypjpf4  于 2023-05-30  发布在  .NET
关注(0)|答案(1)|浏览(95)

我有一个Azure应用服务计划,其中运行两个应用服务:前端和后端。前端应用服务消耗大约200MB的RAM,后端应用服务消耗大约400MB的RAM。但是,当我检查应用程序服务计划的总内存使用量时,它显示使用了大约2.8GB的RAM。我想知道为什么总的内存使用量远远高于单个应用服务的内存使用量。有没有办法优化或减少整体内存消耗?

lp0sw83n

lp0sw83n1#

根据我对您的问题描述的理解,您在有问题的应用程序服务计划(ASP)下只有两个应用程序服务(WebApps)。
只是强调一下,ASP的总内存使用量高于在其上运行的单个应用程序服务的总内存使用量是正常的。这是因为ASP还包括系统进程开销。如本文档所述:
系统进程将在应用程序服务计划上运行,即使没有Web应用程序正在运行或应用程序服务计划不包含Web应用程序。
平台进程将消耗最小量的资源(如CPU、内存和磁盘空间),在应用服务计划的容量规划、监控和自动伸缩触发器配置过程中应考虑到这一点。
如果您尚未执行此操作,则可以运行App Service诊断程序:

  • 您可以从Azure门户>导航到Azure门户中的应用服务应用中利用应用服务诊断。(截图如下)

--在Azure Portal中,在左侧导航中,单击Diagnose and solve problems-单击Diagnose and solve problems-查看-“配置和管理”和“可用性和性能”>>“内存分析”
但是,有一些方法可以优化或减少ASP的整体内存消耗,您可以考虑1个或多个选项来进一步缩小问题:

  • 优化您的应用服务以减少其内存消耗。例如,可以优化代码以使用更少的内存、减少依赖项的数量或使用更有效的算法。根据您的要求,您还可以将应用服务配置为更频繁地回收以释放内存。
  • 利用Application Insights(Azure Monitor)来监控内存使用情况,并确定任何内存泄漏或导致内存使用率高的其他问题。Application Insights提供详细的指标和诊断,可帮助您优化应用服务并减少内存消耗。
  • 此外,如果您的需求符合,如果您的ASP内存不足,您可以通过添加更多示例来扩展。这将在多个示例之间分配负载,并减少每个示例的内存使用。

要进行其他分析,可以从Azure Portal获取转储文件,如果当前出现问题诊断工具>收集内存转储。
参考:app-service-best-practices#memoryresources

相关问题