来源W3SVC 事件ID 老是占满CPU怎么处理,怎么回事呀,应用程序池 'DefaultAppPool'导致死机
服务器的Web Server总是离奇的死机,客户端出现Sevice Unavailable的错误。查看Log:为应用程序池 'DefaultAppPool' 提供服务的进程关闭时间超过了限制。进程 ID 是 '××××'。为应用程序池 'DefaultAppPool' 提供服务的进程 ID 为 ×××× 的 worker 进程已经请求回收,因为 worker 进程达到了允许的运行时间限制。
发现这个问题出现的时间刚好是多人在线的情况下发生。用任务管理器观察了一下:发现web service(即W3SVC) 的进程有问题,内存页面错误的值很高。 ms给出的定义: Page Faults/sec 是指处理器中“页面错误”的数量。当一个进程引用不在主存储器“工作集”中的虚拟内存页时,就会发生页面错误。如果该页面在 Standby 列表上,因而已在主存储器中,或者如果另一个与其共享该页面的进程正在使用该页,那么发生“页面错误”时,不会从磁盘读取该页面。
事件类型: 警告
事件来源: W3SVC
事件种类: 无
事件 ID: 1013
日期: 2006-10-13
16:01:51
用户: N/A
计算机:
描述:
为应用程序池 'DefaultAppPool' 提供服务的进程关闭时间超过了限制。进程 ID 是 '2552'。
有关更多信息,请参阅在 http://go.microsoft.com/fwlink/events.asp 的帮助和支持中心。
相信这是由于不正确地设置了回收进程导致,建议关闭下列进程回收设置:
回收工作进程(分钟):1200
回收工作进程(请求数目):10000
启用CPU监视,最大CPU使用率:90#
由于设定了进程自动回收,而当每达到10000次点击,或CPU超过100#,就会强行回收application,导致客户端会出现Sevice Unavailable的错误。(实际上10000次点击,访问量一般的网站,几分钟就够了。) 建议启用计数器日志来监视CPU利用率和asp.net的指标,可以帮助你定位每5~10分钟出现一次是否是上述原因导致。
另外,不要无理由地打开回收工作进程和使用工作进程池。一般理由通常是有不明原因的内存泄露、线程挂起等