在 Web服務器上,所能夠用到的內
在 Web服務器上,所能夠用到的內存,通常不會等同于所有的內存數量。
在nfig配置文件中,
配置節processModel中有一個屬性“memoryLimit”,這個屬性的值是一個百分值,默認為“60”,即指定了進程(在任務管理器中大家就可以看到的進程,IIS5中為aspnet_wp,IIS6中為w3wp)能夠使用所有物理內存的60%。當使用的內存量超過這個限額時,IIS會開始自動回收(recycle)進程,即創建一個新的進程去負責應付Http請求,而將舊進程所占用的內存回收。當我們有一臺很大內存的服務器時,“memoryLimit”這個值是需要進行適當的調整的。比如我們準備了一臺chemas-microsoft-comofficemarttags\" /t=\"on\"4G內存的服務器,那么t=\"on\"4G×60%=t=\"on\"2.4G。但是,對于Win32操作系統,一個進程所能占用的所有內存空間只有t=\"on\"2G。當進程占用的內存開始達到t=\"on\"2G時,由于它并沒有達到t=\"on\"2.4G的“回收閾值”,所以IIS不會啟動recycle進程操作,但是由于Win32的限制,實際上已經不能給這個進程分配更多的內存了,于是,OutOfMemoryException就很可能會被拋出了。為了避免這樣的情況,我們就必須將“memoryLimit”適當調小,以讓IIS更早的進行進程回收。
微軟推薦的進程占用內存是不超過60%,并最好使計算出的實際值不超過t=\"on\"800M。就是說,對于一臺t=\"on\"4G內存的服務器,最好將“memoryLimit”屬性設置成“20”。設置一個適當的回收閾值,讓IIS適時的進行進程回收,對于保證整個服務器的穩定運行,避免OutOfMemoryException是非常重要的。
匯率制度改革的過去一年里 在IIS6中,進程的回收閾值不再由
配置節中的“memoryLimit”屬性決定,而是由IIS管理器中的應用程序池配置中的設置決定。
但是,即使正確設置了這些配置,也不能保證完全避免OutOfMemoryException的發生,原因可能是多樣而復雜的,比如內存回收操作可能耗時太多等等。開發人員要注意的,就是在代碼中時刻牢記不要無謂的使用和浪費內存。:)
如果你有一臺大內存的服務器,同時對Win32操作系統中對于進程最高使用t=\"on\"2G內存的限制很郁悶,可選的解決方法有兩個:
1、使用/3GB模式啟動計算機,方法參加文后的鏈接
2、使用Windows Server 2003 64bits Edition
查看本文來源
溫州哪個醫院治療白癜風最好蘭州醫院哪家治療白癜風好
北京白癜風疾病醫院
- 他們有在聽嗎?用這3個技巧,抓住聽眾的焦慮
- 劉亦菲、李易峰的流量轉型路:道阻且長
- 片場長大的楊冪“知世俗而不世俗”,你喜歡她演過的哪部經典作品呢?
- 【文中紅包】A股為何全線大跌?添富火線解讀
- 國際刑警組織丨曼陀羅誤當蔬菜吃,寧夏一對母子中毒!
- 腌制咸鴨蛋,只加鹽是“外行”!多加4種料,10天腌制好,流油又起沙
- 安卓手機也將玩游戲“空間音頻”,您會期待嗎?
- 寶馬計劃與韓國供應商合作生產線固態電池
- 8歲女童連不吃大量荔枝引起中毒?荔枝雖美味,但5類人也不能多不吃
- 中乙山西龍晉退出職業聯賽:無法在規定小時交60萬參賽保證金
- 如何在dota2中都激怒玩家?只需一招,無論是隊友還是對手都會紅溫
- 崗位中無論心結有多大,弄明白這五個道理,混得越來越順利