如何使用Windows 2008 / IIS7诊断网站性能/应用程序池回收

好的,这里有各种各样的症状(客户和我们自己的员工抱怨间歇性减速,被“踢出”login页面或只是有一个保存请求不正确地保存提交的数据)。

环境:

  • Windows Server 2008(Datacenter),Service Pack 2,64位,2×2.8 GHz处理器,7.5 GB RAM
  • MS SQL Server 2008(运行在同一台机器上)
  • IIS 7

有大约10个网站在服务器上运行,每个网站都在自己的应用程序池中 – 这些池中的大部分都以集成模式运行,2个是经典的,都在.NET 2.0上,都以ApplicationPoolIdentity的forms运行。

我正在尝试分析,诊断和排除故障,并且正在努力从哪里获得关于可能发生的更多信息。

以下是我已经采取的一些步骤:

  • 设置每个应用程序池每天回收一次,并删除任何其他自动回收
  • 设置每个虚拟内存限制为1024000KB(1GB)
  • 已启用ALL'生成回收事件日志条目'条目(configuration更改,Isapi报告不健康,手动回收,超出专用内存限制,正常时间间隔,请求限制超出,特定时间,超出虚拟内存限制)

我已经看到了应用程序池进程的回收(在任务pipe理器) – 一个新的将启动,然后第一个死亡 – 这发生没有内存或时间超过设置。

这是一个相当新的服务器,其中大部分来自Windows Server 2003 / IIS6。

任何设置信息收集,logging,诊断等“下一步”将非常感激!

Ĵ

应用程序池高级设置允许您为应用程序池打开额外的日志logging。 您可以打开所有的应用程序池回收日志logging。 在健康的情况下不应该喋喋不休,你不介意在排除故障的时候是否有点喋喋不休。

然后在事件查看器中,每当您的应用程序池回收时,都应该logging一个事件。

只是关于内存回收的一个注意事项 – 如果您在任务pipe理器中查看它,您可能不会注意到它已经达到了虚拟字节限制,但是如果设置了事件日志设置,它仍然会触发一个事件。

顺便说一句,任何对App Pool设置的更改都会触发回收。 所以不要去重新确认设置,除非你想要这样做!

为了避免这种情况,请更改属性DisallowRotationOnConfigChange,这将导致应用程序池在计划或强制执行之前不会回收,此时修改了应用程序池设置。

当采取纠正措施时,WAS应该在系统日志中logging事件; 应用程序池故障通常会logging到系统或应用程序(Windows错误报告或应用程序问题)。