IIS Worker进程对于同一服务器上的相同站点具有较高的内存使用率

问题描述 投票:0回答:1

我有两个具有相同代码的.NET 4.6.1 MVC Web应用程序,它们在Windows Server 2016的IIS 10.0.14393.0上运行。在IIS中查看工作进程时,站点A的内存约为150mb,而站点A的内存为350mb。站点B。我知道代码是相同的,因为我复制了站点A的目录以创建站点B。我已经检查了两者的应用程序池设置,并且它们的私有内存限制和虚拟内存限制也都与0相同。因为所有其他设置都相同。

这是一台开发服务器,因此没有其他人可以访问这些应用程序。唯一执行的操作是显示登录页面。直到我进入登录页面,该应用程序才显示在“工作进程”部分中。有没有人曾经在2个相同的站点上经历过这种类型的内存差异,并且有任何建议可以回顾?

我还将代码移至另一台服务器,并且其内存使用情况与站点B类似。我已按照以下站点上的说明进行操作,以查找内存泄漏,但未发现任何问题。这是有道理的,因为这不一定是内存泄漏,而是一个站点最初在一个实例中而不是在另一个实例中使用大量内存的站点。

https://docs.microsoft.com/en-us/iis/troubleshoot/performance-issues/troubleshooting-native-memory-leak-in-an-iis-7x-application-pool

基于它,在同一服务器上运行具有相同请求的相同代码的两个应用程序之间分配内存的方式大相径庭,我怀疑这是我所缺少的服务器设置或IIS设置,或者只是对IIS如何分配内存的基本误解为工人过程。任何帮助或相关资源将不胜感激。

我也阅读了本文,但由于相同的站点位于同一服务器上,因此我的情况有所不同:IIS worker process making high memory usage

memory-management iis-10 .net-4.6.1
1个回答
0
投票

该问题确实与应用程序池设置之间的差异有关。在站点A和站点B的初始比较中,我没有想到站点A的Enable 32 Bit Applications设置为True,而站点B的Enable 32 Bit Applications设置为False。

这里的课程是在比较设置之后再次检查。 :-)

© www.soinside.com 2019 - 2024. All rights reserved.