如何增加分配给 IIS .NET 应用程序的内存?

如何增加分配给 IIS .NET 应用程序的内存?

我们正在使用在 Amazon EC2 上运行的 Windows 2008 R2 和 IIS 7。IIS 正在运行用 C# 编写的单个 .NET 应用程序。

我们遇到了性能问题,我想为应用程序提供更多内存,但我不知道该怎么做。如何控制 CLR 获得的内存量?

我对 IIS、.NET 和 CLR 完全是个新手。如果我使用 Java,我只需使用 -Xmx 标志来增加 JVM 可用的内存(例如,-Xmx3000m 表示 3GB)。但是,我似乎无法弄清楚如何在 Windows 世界中做到这一点。

答案1

托管在 Web 应用程序的应用程序池中的 CLR 将根据需要抓取尽可能多的内存,然后根据内存需求使用垃圾收集来释放内存。

您可以限制应用程序池可访问的内存量(在 UI 中,通过高级设置对话框,或通过 PowerShell 和 WebAdministration 模块)。

您可能需要检查应用程序池中的内存是否已设置上限,但实际上没有办法在不编辑应用程序所运行的 .NET 版本的 machine.config 的情况下直接将更多内存分配给应用程序池。

编辑:IIS 7 中默认的内存上限自动配置是机器 RAM 的 60%。您可以通过编辑应用程序所运行的 .NET 版本的 machine.config 文件来手动增加此上限。 此处有各种配置设置的详细信息。

相关内容