如何处理使用过多内存或 CPU 的应用程序池?我希望能够选择应用程序池在回收之前使用一定数量的内存或 CPU(或两者)的时间。知道如何实现吗?当应用程序池达到一定程度的 CPU 使用率时,IIS7 允许终止应用程序池,但我感兴趣的是回收它。
谢谢
答案1
您是否尝试过为应用程序池设置回收条件?您可以将 IIS 配置为以固定间隔、固定请求数、特定时间或特定内存阈值回收应用程序池。
- 运行 inetmgr
- 在“连接”窗格中,展开服务器名称,然后单击“应用程序池”
- 选择所需的应用程序池
- 在操作窗格中,单击回收
虽然这不会根据 CPU 使用情况进行回收,但是至少您可以按照一定时间间隔回收应用程序池。
话虽如此,我认为在正常情况下您不需要回收应用程序池。如果您需要经常这样做,我会说您有一个“坏”应用程序,或者您需要为应用程序提供更多资源。
答案2
安装 IIS 时建议使用 Windows Server 资源管理器。它包含在一些 Windows Server 版本中 - 请查看您的功能列表以查看它是否存在。
此实用程序可感知应用程序池,并允许您限制应用程序池的 CPU 和工作集。
这比基于 CPU 消耗的回收触发器破坏性更小,但需要仔细设置。通常,只有当一个应用程序池消耗过多时,它才会产生影响,这听起来像您的情况;可能值得一试。