iis占用服务器内存,W3wp.exe 进程占用内存高消耗CPU近100%导致网站反应速度缓慢的解决方案...
如何降低W3WP.EXE占用的內(nèi)存和CPU?結(jié)合網(wǎng)上的諸多建議,主要的解決辦法是:
a.在IIS中對(duì)每個(gè)網(wǎng)站進(jìn)行單獨(dú)的應(yīng)用程序池配置;
b.合理的配置你的應(yīng)用程序池;
c.找出具體網(wǎng)站站點(diǎn)的程序問題。
問題描述
環(huán)境:win2003server+IIs+ASP+MSSQL
現(xiàn)象:每隔一段時(shí)間(不定,有時(shí)幾分鐘,有時(shí)半小時(shí))出現(xiàn)一次網(wǎng)站打開非常緩慢,甚至有時(shí)會(huì)出現(xiàn)超時(shí)打不開站點(diǎn),此時(shí)查看服務(wù)器端的進(jìn)程,CPU占用率達(dá)到100%,其中w3wp占用超過80%,于是所有服務(wù)器端的操作也變得緩慢。
簡(jiǎn)單解決方法:每次現(xiàn)象出現(xiàn)時(shí),立即登錄服務(wù)器直接結(jié)束w3wp進(jìn)程或重啟IIS服務(wù)。
解決方案參考
針對(duì)該類問題,具體可參考如下所述方法來逐步尋找根本的解決途徑:
1、在IIS中對(duì)每個(gè)網(wǎng)站進(jìn)行單獨(dú)的應(yīng)用程序池配置,即使之互相之間不影響。(但需要注意一點(diǎn):進(jìn)程池越多越占用內(nèi)存,由于訪問網(wǎng)站之后往往不會(huì)立即釋放內(nèi)存資源。)
2、設(shè)置應(yīng)用程序池的回收時(shí)間。默認(rèn)為1720小時(shí),可以根據(jù)情況修改。同時(shí),設(shè)置同時(shí)運(yùn)行的w3wp進(jìn)程數(shù)目為1。再設(shè)置當(dāng)內(nèi)存或者cpu占用超過多少,就自動(dòng)回收內(nèi)存 。
3、設(shè)置固定時(shí)間回收進(jìn)程。比如在凌晨1:00至9:00之前訪問人數(shù)都比較少,影響很少小,可以設(shè)定每天在這個(gè)時(shí)間段內(nèi)進(jìn)行內(nèi)存回收,以減少服務(wù)器因 為內(nèi)存不足帶來的影響。設(shè)定固定時(shí)間回收進(jìn)程在IIS6中沒有限制次數(shù),所以可根據(jù)實(shí)際情況來設(shè)定時(shí)間。比如:晚上12:00,8:00,12:30,6:30等時(shí)間進(jìn)行有效的進(jìn)程池資源回收。
一般來說,做完以上操作就可以解決了。但仍然會(huì)可能出現(xiàn)因?yàn)閭€(gè)別網(wǎng)站的程序問題,不能及時(shí)釋放資源。所以我們可以找出該網(wǎng)站,然后調(diào)試分析其程序問題所在。
那么,怎么樣才能確定是哪一個(gè)網(wǎng)站呢?參考方法如下:
1、在任務(wù)管理器中增加顯示pid字段。方法為:打開任務(wù)管理器-查看-選擇列-選中“PID(進(jìn)程標(biāo)識(shí)符)”前的復(fù)選框。這樣就可以看到占用內(nèi)存或者cpu最高的進(jìn)程pid。
2、在命令提示符下運(yùn)行iisapp -a。注意,第一次運(yùn)行,可能會(huì)提示沒有js支持,點(diǎn)擊確定進(jìn)行注冊(cè),然后再次運(yùn)行該命令就可以了。這樣就可以看到pid對(duì)應(yīng)的應(yīng)用程序池。
3、到iis中察看該應(yīng)用程序池對(duì)應(yīng)的網(wǎng)站,進(jìn)行更詳細(xì)的分析,具體問題具體對(duì)待。
最后的補(bǔ)充
總結(jié)一些需要注意的問題:(摘)
1、 要限制一個(gè)站點(diǎn)的CPU使用,必須將該站點(diǎn)設(shè)置為獨(dú)立應(yīng)用程序池,共用應(yīng)用程序池是無法限制單個(gè)站點(diǎn)的。IIS獨(dú)立應(yīng)用程序池,就需要獨(dú)立的進(jìn)程,非常消耗內(nèi)存。獨(dú)立池越多,就有越多的W3WP進(jìn)程。對(duì) 于每個(gè)站點(diǎn)均要獨(dú)立應(yīng)用程序池的服務(wù)器,在一般的普通P43.0 2G內(nèi)存 的普通服務(wù)器上,建議不要超過50個(gè)站點(diǎn),最好30以內(nèi),不然服務(wù)器壓力非常大。在配置上,我一般把資源消耗較大的網(wǎng)站獨(dú)立一個(gè)池,一般普通BBS或者生 成HTML的系統(tǒng)大概5個(gè)站一個(gè)池。普通網(wǎng)站以及一些企業(yè)站點(diǎn)均共用一個(gè)池。
2、根據(jù)wlmmc的經(jīng)驗(yàn),在服務(wù)器硬件允許的情況下,一般不要限制站點(diǎn)內(nèi)存使用,這樣能夠保證網(wǎng)站運(yùn)行,不會(huì)出現(xiàn)用戶掉線情況。需要限制某站的最大虛擬內(nèi)存不要小于64M,不然可能出現(xiàn)一些未知的錯(cuò)誤。
3、這些都不是根本解決辦法,它的根本問題是網(wǎng)站程序有問題,要解決根本問題還要從程序查起。根據(jù)本文開頭提到的方法查到具體的應(yīng)用程序池,找到使用此應(yīng)用程序池的網(wǎng)站,解決網(wǎng)站程序存在的問題,如死循環(huán)之類。
4、除了w3wp.exe, 在調(diào)用數(shù)據(jù)庫進(jìn)行大量查詢操作的時(shí)候,也會(huì)大量占用CPU資源,這是難免的(數(shù)據(jù)庫方面的語句及結(jié)構(gòu)優(yōu)化不在本文討論范圍之內(nèi))。個(gè)人認(rèn)為,只要不是CPU長(zhǎng)時(shí)間占用100%, 一般在75%左右都是正常的。
總結(jié)
以上是生活随笔為你收集整理的iis占用服务器内存,W3wp.exe 进程占用内存高消耗CPU近100%导致网站反应速度缓慢的解决方案...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: u盘怎么彻底删除不被恢复 彻底删除U盘,
- 下一篇: 前台传json ajax,如何在前台脚本