x86 服务器上 IIS 7.0 应用程序池的内存限制是多少

x86 服务器上 IIS 7.0 应用程序池的内存限制是多少

我有 Windows Server 2008 SP2 EE x86,内存为 6GB。IIS7 上有 10 个应用程序池在运行。所有 10 个应用程序池和每个应用程序池分别可以使用多少内存?我的应用程序抛出 OutOfMemoryExceptions 的极限是多少?

那么,监控 IIS7 应用程序池的性能和可用的免费服务器资源的最佳方法是什么?我尝试使用默认性能监视器和按索引标识的进程 (专用字节、虚拟内存、工作集) 的性能计数器,但我无法将这些计数器实时链接到当前应用程序池。

答案1

每个应用程序池最多可使用 2GB 的私有地址空间,除非您使用过 3GB 等 BCDEDIT 选项。

如果所有 10 个都尽可能使用了 2GB,那么您将陷入分页地狱。

您的问题一般是关于进程如何在 Windows 上分配内存 - 我会向您提供一些术语以供进一步研究。

专用字节 - 这是专门分配给该进程的内存量 虚拟字节 - 这是该进程分配的内存总量 工作集 - 这是该进程实际使用的 RAM 量

保留内存 - 指定供应用程序使用的内存,但实际上尚未获得 RAM/页面文件支持;已提交内存 - 具有支持的内存

现在,当您添加 .Net 等应用框架时,问题变得更加复杂 - 在发生 OutOfMemoryExceptions 之前,.Net 的可工作最大值低于 2GB。并且通常,根据我的经验,它们不会发生在没有泄漏或负载超出其处理能力的应用程序上。

带有进程计数器的 Perfmon 通常就是您对应用程序池所能做的一切;您可以启用将 PID 放在进程名称中的选项(如果有帮助),并定期使用 APPCMD LIST WP 来记录哪个应用程序池正在做什么。

相关内容