w3wp.exe是在IIS(因特網信息服務器)與應用程序池相關聯的一個進程,如果你有多個應用程序池,就會有對應的多個w3wp.exe的進程實例運行。這個進程用來分配大量的系統資
今天研究了一下,可以做以下配置:
1、在IIS中對每個網站進行單獨的應用程序池配置。即互相之間不影響。
2、設置應用程序池的回收時間,默認為1720小時,可以根據情況修改。同時,設置同時運行的w3wp進程數目為1。再設置當內存或者cpu占用超過多少,就自動回收內存
一般來說,這樣就可以解決了。但仍然會出現個別網站因為程序問題,不能正確釋放。
那么,怎么樣才能找到是哪一個網站的?
1、在任務管理器中增加顯示pid字段。就可以看到占用內存或者cpu最高的進程pid
2、在命令提示符下運行iisapp -a。注意,第一次運行,會提示沒有js支持,點擊確定。然后再次運行就可以了。這樣就可以看到pid對應的應用程序池
3、到iis中察看該應用程序池對應的網站,就ok了。
最近公司服務器總出現CPU100%占用情況,服務器配置為雙核Xeon3.0×2,2G ECC內存。
發現是w3wp.exe長時間占用大量CPU.出現這種情況應該是網站程序存在死循環等問題所致。
在找到問題以前可以暫時采取限制w3wp進程CPU使用率的方法保證網站可以將就著工作:
在IIS6下,經常出現w3wp.exe的內存及CPU占用不能及時釋放,從而導致服務器響應速度很慢。
解決CPU占用過多:
1、在IIS中對每個網站進行單獨的應用程序池配置。即互相之間不影響。
2、設置應用程序池的CPU監視,不超過25%(服務器為4CPU),每分鐘刷新,超過限制時關閉。
根據w3wp取得是哪一個應用程序池:
1、在任務管理器中增加顯示pid字段。就可以看到占用內存或者cpu最高的進程pid
2、在命令提示符下運行iisapp -a。注意,第一次運行,會提示沒有js支持,點擊確定。然后再次運行就可以了。這樣就可以看到pid對應的應用程序池。(iisapp實際上是存放在 C:windowssystem32目錄下的一個VBS腳本,全名為iisapp.vbs,如果你和我一樣,也禁止了Vbs默認關聯程序,那么就需要手動到該目錄,先擇打開方式,然后選“Microsoft (r) Windows Based Script Host”來執行,就可以得到PID與應用程序池的對應關系。)
3、到iis中察看該應用程序池對應的網站,就ok了,做出上面的內存或CPU方面的限制,或檢查程序有無死循環之類的問題。
解決內存占用過多,可以做以下配置:
1、在IIS中對每個網站進行單獨的應用程序池配置。即互相之間不影響。
2、設置應用程序池的回收時間,默認為1720小時,可以根據情況修改。再設置當內存占用超過多少(如500M),就自動回收內存。
|
新聞熱點
疑難解答