Azure网站具有相同DLL的多个网站的内存使用情况

时间:2015-03-24 15:24:28

标签: iis azure dll azure-web-sites multi-tenant

我们正在将一系列云服务Web角色移至Azure网站 - 目前正在App Service计划/定价层 - 标准1媒体上运行。

网站都是完全相同的,在某些时候我们会重新编写代码库,以便进行适当的多租户。但是,我们目前在单个Azure Web托管计划中将它们作为多个网站托管。

就内存使用而言,Azure将共享相同的Dll,例如所有Nuget包/核心应用程序Dll?或者我们是否需要足够的内存来加载每个网站的每个Dll的副本?实际上,我希望与您分享您可以在AppPools之间共享通用程序集。

我已经看到了MS添加到IIS的设置,以支持共享托管提供商更好的密度。我相信.Net 4.5增加了对interned Dll的支持。是否有任何设置等影响Azure处理这种情况的方式?我们目前运行的内存消耗为我们3.5GB的94%,并希望了解我们是否需要尽快扩展。我希望Azure能够在幕后做一些事情,因为MS显然希望最大化密度。

1 个答案:

答案 0 :(得分:2)

每个WebApp都被应用程序池隔离,因此如果您拥有同一站点的多个副本,即使它们相同,它们也会将自己的程序集副本加载到内存中。

由于服务的多租户性质,还有安全沙箱,因此实习不会对此产生影响。

要监控内存使用情况,您可以查看应用服务计划。同样有用的是流程资源管理器(WebApp>工具>流程资源管理器)