IIS 工作进程的虚拟内存使用量是否可以超出私有内存限制?

IIS 工作进程的虚拟内存使用量是否可以超出私有内存限制?

例如,如果我在“回收”设置中为应用程序池配置以下限制:

Virtual Memory: 512Mb
Private Memory: 128Mb- 或 IIS 6 术语中的“已用内存”

该进程是否可以使用 90Mb 的物理内存,但请求使用 256Mb 的虚拟内存,从而不会触发回收?

答案1

是的 IIS 工作进程使用的虚拟内存多于物理内存是很常见的。要亲自查看,请下载一份进程探索器并查看其中一个 IIS 工作进程的进程内存。

以下面的屏幕截图为例,进程探索器在 IIS 6 服务器上,您可以看到该 IIS 工作进程使用了​​~195MB 的虚拟内存和~37MB 的物理内存(工作集)。

有关不同内存类型之间关系的解释,请参阅此 StackOVerflow 问题什么是私有字节、虚拟字节、工作集?

替代文本

因此,根据您配置的限制,使用使用 90MB 物理空间和 256MB 虚拟空间的 IIS 工作进程不会触发应用程序池的回收。

答案2

您必须使用性能监视器了解特定进程的内存使用情况。你应该使用虚拟字节工作集了解特定进程使用的内存。

现在,来回答你最初的问题。你正在尝试向应用程序池添加回收选项,我可以问一下为什么要在工作进程上实现回收吗?如果如果你担心进程使用的内存量,那么你应该解决内存问题并且不限制该过程。

相关内容