解决CPU占用过多:windows
一、在IIS中对每一个网站进行单独的应用程序池配置。即互相之间不影响。服务器
二、设置应用程序池的CPU监视,不超过25%(服务器为4CPU),每分钟刷新,超过限制时关闭。app
根据w3wp取得是哪个应用程序池:网站
一、在任务管理器中增长显示pid字段。就能够看到占用内存或者cpu最高的进程pidblog
二、在命令提示符下运行iisapp -a。注意,第一次运行,会提示没有js支持,点击肯定。而后再次运行就能够了。这样就能够看到pid对应的应用程序池。(iisapp其实是存放在 C:windowssystem32目录下的一个VBS脚本,全名为iisapp.vbs,若是你和我同样,也禁止了Vbs默认关联程序,那么就须要手动到该目录,先择打开方式,而后选“Microsoft (r) Windows Based Script Host”来执行,就能够获得PID与应用程序池的对应关系。)进程
三、到iis中察看该应用程序池对应的网站,就ok了,作出上面的内存或CPU方面的限制,或检查程序有无死循环之类的问题。ip
解决内存占用过多,能够作如下配置:内存
一、在IIS中对每一个网站进行单独的应用程序池配置。即互相之间不影响。资源
二、设置应用程序池的回收时间,默认为1720小时,能够根据状况修改。再设置当内存占用超过多少(如500M),就自动回收内存。sed
个人设置以下:
首先是对CPU的限制:在启用cpu监视后,我设置该应用程序池最大的cpu使用率为50%。设置刷新cpu时间为1分钟,设置操做为“关闭”。最大工做进程数设置为1。这个意思是,IIS刷新检测该独立池的CPU使用状况时间为1分钟,若是超过设置的cpu限制50%,就会发出关闭池的指令,要求池在指定的时间内关闭。若是池成功在这个时间内关闭,IIS会重启动一个新池,此段时间很短,通常不会有什么感受,池就从新开启了,对于访问网站的人基本是不会有感受的。但若是池没有在指定时间内关闭,IIS就会强行关闭它一个刷新CPU时间。在这个中止的时间内,网站没法访问,提示“Service Unavaliable”。
关闭时间和启动时间间隔设置:设短一些好比10秒,这样当您的网站程序大量占用系统资源时IIS自动快速回收进程而且快速启动进程,您的网站暂时还能够将就着工做。
对内存的限制及进程回收时间的设置:我设置为内存占用超过800M就自动回收内存,虚拟内存没有作限制。进程回收时间我保持默认没有修改。各位能够根据本身的状况设置更短的时间。对应用程序池最大虚拟内存也能够在此进行设置,超过了设置的最大虚拟内存,该池会就被回收。