我们正在将一系列云服务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显然希望最大化密度.
每个WebApp都由应用程序池隔离,因此如果您拥有同一站点的多个副本,即使它们相同,它们也会将自己的程序集副本加载到内存中.
由于服务的多租户性质,还有安全沙箱,因此实习不会起作用.
要监控内存使用情况,您可以查看应用服务计划.进程资源管理器也很有用(WebApp>工具>进程资源管理器)