解決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就自動回收內存,虛擬內存沒有作限制。進程回收時間我保持默認沒有修改。各位能夠根據本身的狀況設置更短的時間。對應用程序池最大虛擬內存也能夠在此進行設置,超過了設置的最大虛擬內存,該池會就被回收。