我们正在尝试调整我们的 IIS 场,并且试图了解 Windows 如何在我们当前设置中分配资源。
我们的布局非常标准。我们的服务器上托管了 30 多个 ASP/ASP.NET 站点。我们为每个站点提供单独的应用程序池,这样我们就可以手动回收站点而不会影响其他站点。
由于每个应用程序池都会生成自己的 IIS 工作进程 (w3wp.exe),因此我假设每个进程都分配有自己的内存(即桌面堆等)。我们的桌面堆开始用完,因此我们按照建议将非交互式桌面的堆大小从 512 增加到 1024,但如果可以的话,我们希望进一步增加。
我是否可以正确地假设,由于我们所有的应用程序池都使用网络服务帐户,因此只为其分配了一个桌面堆?
如果是这样,那么简单地为每个应用程序池提供自己的自定义用户帐户有何优缺点?
理论上,每个站点都有自己的内存分配,只有在极端情况下才会耗尽。
我很感激您的智慧。谢谢。
答案1
每个进程(以及应用程序池)都有自己的资源分配。这包括进程堆(即进程使用的内存)。无论进程的身份如何,此堆都不会在进程之间共享。
但是,您在问题中提到的桌面堆是在整个系统中共享的。更改应用程序池运行的用户不会为他们提供更多资源。
还有更多信息这里