在WINDOWS2003 IIS6下,經(jīng)常出現(xiàn)w3wp的內(nèi)存占用不能及時(shí)釋放,從而導(dǎo)致服務(wù)器響應(yī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èn):我的具體情況是這樣的:
服務(wù)器配置 至強(qiáng)2.8G 內(nèi)存512M SCSI硬盤 2塊 (軟鏡像)
系統(tǒng) windows 2003
現(xiàn)在掛了一個(gè)asp.net開(kāi)發(fā)的網(wǎng)站 訪問(wèn)量不大 但是出現(xiàn)一個(gè) 問(wèn)題就是
每當(dāng)服務(wù)器運(yùn)行2-3天后 訪問(wèn)網(wǎng)站就特別慢 重啟動(dòng)服務(wù)器后就 正常了
查看進(jìn)程使用內(nèi)存的情況 發(fā)現(xiàn)w3wp.EⅩE 和sqlservr.EⅩE 進(jìn)程 占用內(nèi)存
相當(dāng)大 達(dá)到了170多M( 每個(gè)) 物理可用內(nèi)存幾乎用光
(服務(wù)器重啟動(dòng)時(shí) 占用的內(nèi)存很小才40多M 每個(gè))
以前網(wǎng)站掛在一個(gè)虛擬機(jī)上 數(shù)據(jù)庫(kù)是分開(kāi)掛的 從沒(méi)出現(xiàn)這種情況
后來(lái) 原版移植到新服務(wù)器上就 出現(xiàn)這樣的問(wèn)題~~
還個(gè)一問(wèn)題就是 我在SQL企業(yè)管理器中查看SQL進(jìn)程 發(fā)現(xiàn)有很多是 。net 引起的進(jìn)程是sleeping 但是卻占用了內(nèi)存~ 無(wú)法釋放
搞了很久了 一直都沒(méi)解決
求救~~請(qǐng)高手 指教~~ 萬(wàn)分感謝~~~~~
答:IIS服務(wù)管理器----》應(yīng)用程序池----》添加你的應(yīng)用,并設(shè)置最大內(nèi)存,當(dāng)程序達(dá)到最大內(nèi)存后其會(huì)自動(dòng)重啟。
我的問(wèn)題跟你一樣,不過(guò)我的內(nèi)存是2G的,訪問(wèn)量比較高,一般是差不多運(yùn)行24小時(shí)后就得重啟,內(nèi)存沒(méi)耗完,W3WP進(jìn)程占到一百**十兆,SQL占了二百多兆時(shí),就得重啟,不然整個(gè)站點(diǎn)就當(dāng)在那邊…55555555,搞了快半個(gè)月了還是不行,痛苦啊
w3wp.EⅩE就是你的ASP.NET應(yīng)用宿主,如果你使用了大量的Session、Cache等資源,并且Session超市時(shí)間很長(zhǎng),那么內(nèi)存占用量就比較大。應(yīng)用池是為增加性能而設(shè)的一個(gè)特性,但是也消耗很大的內(nèi)存。另外關(guān)掉Windows Server 2003里的大多數(shù)Service(那個(gè)不用都可以關(guān)掉),也可以節(jié)省一部分內(nèi)存
1.懷疑在程序中應(yīng)用的CACHE,
2.CACHE中有大量的數(shù)據(jù)
3.頻繁刷新CACHE
4.沒(méi)有設(shè)計(jì)好CACHE的方式
你的問(wèn)題我以前也遇見(jiàn)過(guò),我以前是用的Session,后我全部改成cook之后就好多了,應(yīng)該是你的Session或是你的CACHE有問(wèn)題(CACHE不太懂,但多多少應(yīng)該是有的)
跟蹤下SQL的調(diào)用記錄,在每次往CACHE或SESSION寫入大量數(shù)據(jù)時(shí)記錄一下時(shí)間,看是否太過(guò)頻繁
1.在win2003里asp.net的進(jìn)程就是w3wp.EⅩE
2.512M內(nèi)存?zhèn)人用是夠用了,但是放在服務(wù)器上就有點(diǎn)不夠用了,尤其是win2003 asp.net sql server 。尤其是sql server 他是很吃內(nèi)存的,如果不控制的話,他會(huì)占光所有的物理內(nèi)存(只剩下幾十M 倒 100M 吧)。win2003 本身就要占用150M左右。也就剩不下什么了。
3.優(yōu)化asp.net程序,就向樓上的說(shuō)的那樣,少用或不用session cache application之類的東西,再有就是是不是有翻頁(yè)的地方,翻頁(yè)處理不好也是會(huì)占很多內(nèi)存的。
4.**sql的內(nèi)存。企業(yè)管理器——SQL的屬性(一般是local)——“內(nèi)存”標(biāo)簽
在這里看內(nèi)存的設(shè)置,把最大值改成100M吧。
第四條是最快的方法,可以試一試。
我的一個(gè)自開(kāi)發(fā)OA系統(tǒng)也存在這樣的問(wèn)題。
總結(jié)上面,大概原因是因?yàn)?session 和 cache 的不合理使用造成的。
我的應(yīng)用程序中,確實(shí)用了很多的Session 和 Cache,
在 MSDN 中找到 了 “動(dòng)態(tài)內(nèi)存分配”這一篇,今天就試看看,是否有效。
希望有經(jīng)驗(yàn)的朋友多給些信息,大家也好總結(jié)下出現(xiàn)類似錯(cuò)誤的原因,謝謝!
不知道你是什么網(wǎng)站。按理說(shuō)是不會(huì)占用這么大的。如上你用了cache存放了超額的內(nèi)容。當(dāng)然。象session這種是不太可能占用這么大的了,或用了application 類似的一些有超長(zhǎng)時(shí)間或永久保持性的對(duì)象來(lái)保存大量數(shù)據(jù)。如利用單例保存數(shù)據(jù)這些都有可能造成使用大量的內(nèi)存。
建義2003系統(tǒng)安裝至少1G內(nèi)存。
w3wp.EⅩE是2003下的一個(gè)iis進(jìn)程,至于樓主說(shuō)的sql占用內(nèi)存,那有可能是因?yàn)槟愕膕ql沒(méi)有設(shè)置占用內(nèi)存上限
在IIS6下,經(jīng)常出現(xiàn)w3wp.EⅩE的內(nèi)存及CPU占用不能及時(shí)釋放,從而導(dǎo)致服務(wù)器響應(yīng)速度很慢。
解決內(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)存。
解決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è)一個(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:\windows\system32目錄下的一個(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)之類的問(wèn)題。
億恩科技地址(ADD):鄭州市黃河路129號(hào)天一大廈608室 郵編(ZIP):450008 傳真(FAX):0371-60123888
聯(lián)系:億恩小凡
QQ:89317007
電話:0371-63322206
本文出自:億恩科技【1tcdy.com】
服務(wù)器租用/服務(wù)器托管中國(guó)五強(qiáng)!虛擬主機(jī)域名注冊(cè)頂級(jí)提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM]
|