ASP.NET 4.0工作进程在64位的内存消耗量是32位的5倍



我已将一个ASP.NET v4.0应用程序迁移到在Win2008 server x64操作系统下运行的新服务器上。由于当应用程序池设置为"启用32位应用程序"=False(在x64 IIS上应为默认值)时,迁移的asp.net应用程序似乎没有问题,因此我让它以64位模式运行。

事实证明,用户会话经常被中断,因为工作进程很快就会超过其虚拟内存限制。出于这个原因,我只用一个修改过的设置测试了同一个应用程序和同一应用程序池——我将"启用32位应用程序"切换为True,让它在"WOW64"模式下运行;其他一切都保持原样。我使用完全相同的用户工作场景比较了两种模式下工作进程消耗的内存量,结果让我有点震惊:

  • 在WOW64 32位模式下运行时,工作负载消耗大约150MB
  • 在"默认"64位工作进程模式下,相同的工作负载消耗大约800MB

我曾预计,在64位模式下,工作进程可能会消耗更多的内存,但这种差异太大了。

如此巨大的记忆力影响被认为是正常的吗?有可能以某种方式减少/修复它吗?

经过更多的调查,似乎没有内存问题。。新服务器只有更多的内存,当在64位操作系统应用程序池上运行时,只允许分配更大的内存资源。这看起来像是内存泄漏,但由于从一定数量的分配RAM中,进程停止消耗额外的内存,这似乎根本不是内存问题。感谢所有响应者。。

最新更新