【发布时间】:2010-11-24 03:27:01
【问题描述】:
我们的 ASP.Net 2.0 Web 应用程序在 Windows Server 2003 上运行良好。我们开始看到环境的一些限制正在逼近,例如内存和 CPU 使用高峰,并且我们正准备扩展我们决定是时候使用具有更高可用性的更大服务器了。
我们决定迁移到 Windows Server 2008 以利用 IIS 7 的共享配置。在我们的开发和集成环境中,我们重现了 2008/IIS 7 中的操作系统和应用程序,一切看起来都很好。但说实话,目前还没有模拟生产负载的好方法,我们也不能准确地重现我们的生产环境(我们很小,资源有限)。因此,一旦我们投入生产,我们惊讶地发现 2008 年的性能比 2003 年要差得多。
在此过程中,我们还从 32 位环境迁移到 64 位环境,并且我们还将 ASP.Net 3.5 dll 合并到项目中。
内存使用量激增,但我并不担心。我们认为这部分是因为 Server 2008 的内存开销,因此向其投入更多 RAM 可能会解决该问题。令人不安的是,我们看到处理器的 CPU 利用率达到 99%,这是我们在 2003/IIS 6 环境中从未见过的。
以前有没有人遇到过这些问题,是否有任何解决方案/地方的建议?现在我们正在做以下事情:
1) 通过增加内存来购买时间。
2) 通过设置应用程序池限制来争取时间:当 CPU 达到 99% 负载时关闭 w3wp.exe。由于您没有回收应用程序池的选项,因此我有一个计划任务正在运行,可回收任何已停止的应用程序池。
3) 分析经典模式和集成模式下的应用程序池,看看哪个可能表现更好。
完全欢迎任何其他想法。
【问题讨论】:
标签: performance iis-7 iis-6 windows-server-2008 windows-server-2003