w3wp.exe進程占用內存和cpu過多的解決方案
當前位置:點晴教程→知識管理交流
→『 技術文檔交流 』
在IIS6下,經常出現w3wp.exe的內存及CPU占用不能及時釋放,從而導致服務器響應速度很慢。
解決CPU占用過多: 1、在IIS中對每個網站進行單獨的應用程序池配置。即互相之間不影響。 2、設置應用程序池的CPU監視,不超過25%(服務器為4CPU),每分鐘刷新,超過限制時關閉。 根據w3wp取得是哪一個應用程序池: 1、在任務管理器中增加顯示pid字段。就可以看到占用內存或者cpu最高的進程pid 2、在命令提示符下運行iisapp -a。注意,第一次運行,會提示沒有js支持,點擊確定。然后再次運行就可以了。這樣就可以看到pid對應的應用程序池。(iisapp實際上是存放在C:\windows\system32目錄下的一個VBS腳本,全名為iisapp.vbs,如果你和我一樣,也禁止了Vbs默認關聯程序,那么就需要手動到該目錄,先擇打開方式,然后選“Microsoft (r) Windows Based Script Host”來執行,就可以得到PID與應用程序池的對應關系。) 3、到iis中察看該應用程序池對應的網站,就ok了,做出上面的內存或CPU方面的限制,或檢查程序有無死循環之類的問題。 解決內存占用過多,可以做以下配置: 1、在IIS中對每個網站進行單獨的應用程序池配置。即互相之間不影響。 2、設置應用程序池的回收時間,默認為1720小時,可以根據情況修改。再設置當內存占用超過多少(如500M),就自動回收內存。 我的設置如下: 首先是對CPU的限制:在啟用cpu監視后,我設置該應用程序池最大的cpu使用率為50%。設置刷新cpu時間為1分鐘,設置操作為“關閉”。最大工作進程數設置為1。這個意思是,IIS刷新檢測該獨立池的CPU使用情況時間為1分鐘,如果超過設置的cpu限制50%,就會發出關閉池的指令,要求池在指定的時間內關閉。如果池成功在這個時間內關閉,IIS會重啟動一個新池,此段時間很短,一般不會有什么感覺,池就重新開啟了,對于訪問網站的人基本是不會有感覺的。但如果池沒有在指定時間內關閉,IIS就會強行關閉它一個刷新CPU時間。在這個停止的時間內,網站無法訪問,提示“Service Unavaliable”。 關閉時間和啟動時間間隔設置:設短一些比如10秒,這樣當您的網站程序大量占用系統資源時IIS自動快速回收進程并且快速啟動進程,您的網站暫時還可以將就著工作。 對內存的限制及進程回收時間的設置:我設置為內存占用超過800M就自動回收內存,虛擬內存沒有做限制。進程回收時間我保持默認沒有修改。各位可以根據自己的情況設置更短的時間。對應用程序池最大虛擬內存也可以在此進行設置,超過了設置的最大虛擬內存,該池會就被回收。 最后綜合以前的一些經驗,總結一些需要注意的問題: 該文章在 2014/3/26 0:25:40 編輯過 |
關鍵字查詢
相關文章
正在查詢... |