【发布时间】:2017-05-28 13:40:51
【问题描述】:
我有一个相当简单的 Web 应用程序在 Azure 的应用服务计划中运行,在 B1 服务计划中。该计划提供 1 个 CPU 和 1.75GB 的 RAM。
CPU 使用率永远不会超过 5%,内存使用率永远不会低于 52%。
我确实停止了计划中运行的唯一站点,并且内存使用量根本没有下降。我创建了一个新的应用服务计划并让它运行了一天,在这段时间内最小内存使用率为 50%,其中没有运行任何应用程序。
我知道造成这种情况的原因可能是操作系统和在操作系统上运行的服务,但获得我支付的 50% 的内存非常令人沮丧 - 我的应用程序会随着时间的推移而增长。
我可以对计划本身做些什么来降低内存消耗?
关于应用程序,除了禁用我不需要的功能(如 Python 和 PHP),并将应用程序设置为 32 位之外,还有其他选项吗?
【问题讨论】:
-
你检查过那块内存是干什么用的吗?如果它被 IIS 使用怎么办?为什么你认为你甚至没有部署你的应用程序就有问题?
-
@PanagiotisKanavos 好吧,我猜正是因为他没有部署应用程序并且 50% 的内存已经消失。
-
@PanagiotisKanavos 据我所知,您只能在应用程序上看到 Process Explorer,而不是服务计划。我没有说有问题,但是在没有任何应用程序的情况下丢失 50% 的内存并不是一个很好的价值主张。
-
Process Explorer 显示所有应用程序和服务。如果您可以在 VM 内部进行 RDP 并运行 Process Explorer,则可以查看正在使用内存的内容。另一方面 - 它是一个托管虚拟机,这意味着它与同一台服务器上的其他虚拟机共享内存,并具有过度配置。所有主机都使用虚拟内存膨胀来强制非活动虚拟机释放内存。独占 RAM 需要更昂贵的计划。
-
换句话说,不要试图将您的虚拟机视为物理机。首先部署并测量您的应用程序,不要过早假设存在内存问题
标签: .net azure azure-web-app-service azure-app-service-plans