IIS 7 - 工作进程不止一个

IIS 7 - 工作进程不止一个

如果我将工作进程设置为 1,我的应用程序池就会挂起。如果我将其设置为至少 6,则一切都会正常工作。

但我读到的每一篇文章都说“不要将其设置超过 1”

那么,在这个做法上,我错了吗?或者谁错了?

当然,我想使用更少的内存和 CPU。我讨厌更多工作进程的另一个原因是会话。它真的让我很烦。

在应用程序池下运行的网站有超过 20,000 名在线访问者,我尝试调试转储文件,但没有发现任何有趣的东西

请给我一些建议。谢谢。

答案1

有可能,低 N 数字由于代码中某处的竞争条件而挂起。

使用 MaxProcesses=6,您可以通过向更多工作进程发送更少的请求来降低进程内并发级别。

要调试原始原因:

  • 配置 1 个工作进程
  • 等待挂起 - 您可能需要为应用程序池启用 OrphanWorkerProcess,以便在回收后将挂起的 w3wp 留在内存中
    • 它挂起后应该会被回收,对吗? ping 失败、标记为无响应、应用程序和系统事件日志中的事件?
  • 在进程处于挂起状态时获取其内存转储
  • 将转储输入到 DebugDiag 1.2 中,看看它有什么建议

您是如何获取内存转储的?(通常,您必须使用与工作进程相同位数的调试器才能从中获取有用的信息)。

相关内容