w3wp.exe進(jìn)程占用內(nèi)存過(guò)高解決方法
w3wp.exe是在IIS(因特網(wǎng)信息服務(wù)器)與應(yīng)用程序池關(guān)聯(lián)的一個(gè)進(jìn)程,如果你有多個(gè)應(yīng)用程序池,就會(huì)有對(duì)應(yīng)的多個(gè)w3wp.exe的進(jìn)程實(shí)例運(yùn)行。這個(gè)進(jìn)程用來(lái)分配大量的系統(tǒng)資
w3wp.exe是在IIS(因特網(wǎng)信息服務(wù)器)與應(yīng)用程序池相關(guān)聯(lián)的一個(gè)進(jìn)程,如果你有多個(gè)應(yīng)用程序池,就會(huì)有對(duì)應(yīng)的多個(gè)w3wp.exe的進(jìn)程實(shí)例運(yùn)行。這個(gè)進(jìn)程用來(lái)分配大量的系統(tǒng)資
研究了一下,可以做以下配置:
1、在IIS中對(duì)每個(gè)網(wǎng)站進(jìn)行單獨(dú)的應(yīng)用程序池配置。即互相之間不影響。
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占用超過(guò)多少,就自動(dòng)回收內(nèi)存
一般來(lái)說(shuō),這樣就可以解決了。但仍然會(huì)出現(xiàn)個(gè)別網(wǎng)站因?yàn)槌绦騿?wèn)題,不能正確釋放。
那么,怎么樣才能找到是哪一個(gè)網(wǎng)站的?
1、在任務(wù)管理器中增加顯示pid字段。就可以看到占用內(nèi)存或者cpu最高的進(jìn)程pid
2、在命令提示符下運(yùn)行iisapp -a。注意,第一次運(yùn)行,會(huì)提示沒(méi)有js支持,點(diǎn)擊確定。然后再次運(yùn)行就可以了。這樣就可以看到pid對(duì)應(yīng)的應(yīng)用程序池
3、到iis中察看該應(yīng)用程序池對(duì)應(yīng)的網(wǎng)站,就ok了。
服務(wù)器總出現(xiàn)CPU100%占用情況,發(fā)現(xiàn)是w3wp.exe長(zhǎng)時(shí)占用大量CPU.出現(xiàn)這種情況應(yīng)該是網(wǎng)站程序存在死循環(huán)等問(wèn)題所致。
在找到問(wèn)題以前可以暫時(shí)采取限制w3wp進(jìn)程CPU使用率的方法保證網(wǎng)站可以將就著工作:
在IIS6下,經(jīng)常出現(xiàn)w3wp.exe的內(nèi)存及CPU占用不能及時(shí)釋放,從而導(dǎo)致服務(wù)器響應(yīng)速度很慢。
解決CPU占用過(guò)多:
1、在IIS中對(duì)每個(gè)網(wǎng)站進(jìn)行單獨(dú)的應(yīng)用程序池配置。即互相之間不影響。
2、設(shè)置應(yīng)用程序池的CPU監(jiān)視,不超過(guò)25%(服務(wù)器為4CPU),每分鐘刷新,超過(guò)限制時(shí)關(guān)閉。
根據(jù)w3wp取得是哪一個(gè)應(yīng)用程序池:
1、在任務(wù)管理器中增加顯示pid字段。就可以看到占用內(nèi)存或者cpu最高的進(jìn)程pid
2、在命令提示符下運(yùn)行iisapp -a。注意,第一次運(yùn)行,會(huì)提示沒(méi)有js支持,點(diǎn)擊確定。然后再次運(yùn)行就可以了。這樣就可以看到pid對(duì)應(yīng)的應(yīng)用程序池。(iisapp實(shí)際上是存放在 C:windowssystem32目錄下的一個(gè)VBS腳本,全名為iisapp.vbs,如果你和我一樣,也禁止了Vbs默認(rèn)關(guān)聯(lián)程序,那么就需要手動(dòng)到該目錄,先擇打開(kāi)方式,然后選“Microsoft (r) Windows Based Script Host”來(lái)執(zhí)行,就可以得到PID與應(yīng)用程序池的對(duì)應(yīng)關(guān)系。)
3、到iis中察看該應(yīng)用程序池對(duì)應(yīng)的網(wǎng)站,就ok了,做出上面的內(nèi)存或CPU方面的限制,或檢查程序有無(wú)死循環(huán)之類(lèi)的問(wèn)題。
解決內(nèi)存占用過(guò)多,可以做以下配置:
1、在IIS中對(duì)每個(gè)網(wǎng)站進(jìn)行單獨(dú)的應(yīng)用程序池配置。即互相之間不影響。
2、設(shè)置應(yīng)用程序池的回收時(shí)間,默認(rèn)為1720小時(shí),可以根據(jù)情況修改。再設(shè)置當(dāng)內(nèi)存占用超過(guò)多少(如500M),就自動(dòng)回收內(nèi)存。