【问题标题】:Azure Memory Working Set Vs. Visual Studio Process MemoryAzure 内存工作集与。 Visual Studio 进程内存
【发布时间】:2019-07-25 14:30:55
【问题描述】:

我有一个在 Azure 上运行的 Web 应用程序,我的计划最多允许 1.5 GB 用于该应用程序的内存。现在,当我转到我的网络应用时,在指标下,选择过去 24 小时的内存工作集,我看到了下图:

这是大部分低于 95 MB 的使用量。现在,当我在本地计算机上运行应用程序时在 Visual Studio 中,我看到内存使用量约为 1.1 GB

现在如果有人可以回答我的问题:

  1. Memory Working Set 是我的应用程序使用的总内存(即 1.5GB 之外)吗?
  2. 为什么两者如此不同?
  3. 我应该担心 Azure 上的应用程序(即 Prod)的内存消耗吗?

【问题讨论】:

  • 从 Visual Studio 运行应用程序可能意味着在调试模式下运行它,对吧?在 debug 中运行代码与在 release 中运行代码存在相当大的差异(看看here for more information)。查看您当前的内存工作集,没有任何其他信息,我认为您不必担心。
  • 谢谢@rickvdbosch。是的,我也以发布模式运行。得到了同样的结果。但是,没有做任何具体的优化。
  • 在 Azure 中运行 Web 应用程序就像共享 IIS 上的应用程序池和站点一样。你能检查一下在 1.1 GB 上本地监控哪个进程吗?
  • 感谢@FalcoAlexander。不确定。我认为是 devenv.exe (1.6 GB),
  • devenv.exe 本质上是 Visual Studio,这可以解释托管调试会话时的大量内存。但我不认为 VS 的行为是这样的

标签: visual-studio azure azure-web-app-service


【解决方案1】:

要查看您的 Web 应用程序在总内存限制下的运行情况,您可以使用门户中的配额刀片。这将包括运行应用程序的任何开销以及应用程序本身消耗的内存。根据您共享的图表,您的应用可能没问题,但配额刀片会帮助您确认。

就您的本地环境而言,您可以拍摄在 Visual Studio 中运行的应用的快照,以诊断其使用如此多内存的原因。有关如何执行此操作的信息位于this article

【讨论】:

  • 太棒了。谢谢。
猜你喜欢
  • 2011-04-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-03
  • 2014-05-19
  • 1970-01-01
相关资源
最近更新 更多