如何降低w3wp.exe進程佔用cpu和內存過多的辦法

在IIS6下,經常出現w3wp.exe的內存及CPU佔用不能及時釋放,從而導致服務器響應速度很慢。下面講解如何降低w3wp.exe進程佔用cpu和內存過多的辦法。

解決CPU佔用過多:
1、在IIS中對每個網站進行單獨的應用程序池配置。即互相之間不影響。
2、設置應用程序池的CPU監視,不超過25%(服務器爲4CPU),每分鐘刷新,超過限制時關閉。

根據w3wp取得是哪一個應用程序池:
1、在任務管理器中增加顯示pid字段(任務管理器>查看>選擇列>PID(進程標識符))。就可以看到佔用內存或者cpu最高的進程pid。

20120628114631473147.jpg

20120628114633973397.jpg

2、在命令提示符下運行iisapp -a。注意,第一次運行,會提示沒有js支持,點擊確定。然後再次運行就可以了。這樣就可以看到pid對應的應用程序池。(iisapp實際上是存放在C:\windows\system32目錄下的一個VBS腳本,全名爲iisapp.vbs,如果你和我一樣,也禁止了Vbs默認關聯程序,那麼就需要手動到該目錄,先擇打開方式,然後選“Microsoft (r) Windows Based Script Host”來執行,就可以得到PID與應用程序池的對應關係。)

 

 

20120628114770567056.jpg

 

 20120628114770497049.jpg

 

20120628114752545254.jpg

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”。

20120628114752335233.jpg

關閉時間和啓動時間間隔設置:設短一些比如10秒,這樣當您的網站程序大量佔用系統資源時IIS自動快速回收進程並且快速啓動進程,您的網站暫時還可以將就着工作。

20120628114741494149.jpg

對內存的限制及進程回收時間的設置:我設置爲內存佔用超過800M就自動回收內存,虛擬內存沒有做限制。進程回收時間我保持默認沒有修改。各位可以根據自己的情況設置更短的時間。對應用程序池最大虛擬內存也可以在此進行設置,超過了設置的最大虛擬內存,該池會就被回收。

20120628114719941994.jpg

最後綜合落伍wlmmc的一些經驗,總結一些需要注意的問題:

1、要限制一個站點的CPU使用,必須將該站點設置爲獨立應用程序池,共用應用程序池是無法限制單個站點的。IIS獨立應用程序池,就需要獨立的進程,非常消耗內存。獨立池越多,就有越多的W3WP進程。對於每個站點均要獨立應用程序池的服務器,在一般的普通P43.0 2G內存 的普通服務器上,建議不要超過50個站點,最好30以內,不然服務器壓力非常大。在配置上,我一般把資源消耗較大的網站獨立一個池,一般普通BBS或者生成HTML的系統大概5個站一個池。普通網站以及一些企業站點均共用一個池。

2、在服務器硬件允許的情況下,一般不要限制站點內存使用,這樣能夠保證網站運行,不會出現用戶掉線情況。需要限制某站的最大虛擬內存不要小於64M,不然可能出現一些未知的錯誤。

3、這些都不是根本解決辦法,它的根本問題是網站程序有問題,要解決根本問題還要從程序查起。根據本文開頭提到的方法查到具體的應用程序池,找到使用此應用程序池的網站,解決網站程序存在的問題,如死循環之類。

4、除了w3wp.exe, 在調用數據庫進行大量查詢操作的時候,也會大量佔用CPU資源,這是難免的(數據庫方面的語句及結構優化不在本文討論範圍之內)。個人認爲,只要不是CPU長時間佔用100%, 一般在75%左右都是正常的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章