抓蟲系列(二) 不要輕視web程序中常用的三個"池" 之應(yīng)用程序池
2011-10-19 15:34 熬夜的蟲子 閱讀(2055) 評論(1) 收藏 舉報前篇回顧:上一篇蟲子給大家介紹了線程安全中容易出錯的地方 內(nèi)容不深 引發(fā)大家的思考與關(guān)注 看似簡單的小程序可是為引發(fā)大麻煩的額 ~ ~
下面蟲子給大家介紹下web應(yīng)用范圍的應(yīng)用程序池、線程池以及數(shù)據(jù)庫連接池中容易出現(xiàn)的問題
首先來看應(yīng)用程序池
你的session丟失了嗎?! 有 當然有 不過我們一般都是設(shè)置超時時間或者新版本更新修改了配置文件導(dǎo)致丟失的。好吧,可以預(yù)見的異常蟲子就不和大家多扯了。
應(yīng)用程序池是將一個或多個應(yīng)用程序鏈接到一個或多個工作進程集合的配置。因為應(yīng)用程序池中的應(yīng)用程序與其他應(yīng)用程序被工作進程邊界分隔,所以某個應(yīng)用程序池中的應(yīng)用程序不會受到其他應(yīng)用程序池中應(yīng)用程序所產(chǎn)生的問題的影響。(概念又見概念、枯燥的東西( ⊙ o ⊙ ))
下面詳細的概念蟲子就不具體說了 幾張圖送上 有什么功能自己琢磨下



下面是重點了 看到了沒 那個回收工作進程
IIS 將應(yīng)用程序分散到隔離的池中,并自動檢測內(nèi)存泄漏、有缺陷的進程和過度利用的資源。如果發(fā)生問題,IIS 通過關(guān)閉然后重新部署有問題的資源并將有問題的進程連接到解析工具上進行管理。亮點來了
工作進程回收如何工作
1.默認情況下,WWW 服務(wù)建立“重疊回收”,即繼續(xù)運行要終止的工作進程,直到啟動新的工作進程后為止。
2.WWW 服務(wù)可以終止一個工作進程,然后啟動一個新的工作進程(如果工作負荷允許執(zhí)行此操作的話)。
何時使用工作進程回收
1.無法修復(fù) Web 服務(wù)器上您所主控的有故障的應(yīng)用程序。
2.遇到不能確定的或間斷性的故障。
3.應(yīng)用程序由于性能監(jiān)視的原因而泄漏內(nèi)存。
4.先前已實施了臨時性的重置解決方案,例如,計劃執(zhí)行 IISReset 命令行實用工具。
說得籠統(tǒng)點,我們經(jīng)常碰到的就是:工作進程虛擬內(nèi)存或者W3wp.exe 進程使用的內(nèi)存達到閾值(session總體積過大)、未關(guān)注應(yīng)用程序池時間配置
解決這類問題一方面可以禁用工作進程回收
在上圖“回收”選項卡上,清除“回收工作進程(分鐘)”復(fù)選框。
另外也可以改變session的存儲方式
<sessionState mode="InProc" stateConnectionString="tcpip=127.0.0.1:42424" sqlConnectionString="data source=127.0.0.1;user id=sa;password=" cookieless="false" timeout="20"/>
將inproc(進程模式)改為StateServer,也就是將會話數(shù)據(jù)存儲到單獨的內(nèi)存緩沖區(qū)中(這個最常用)或者改為SQL Server進行數(shù)據(jù)庫會話管理。
![]() |
原創(chuàng)作品允許轉(zhuǎn)載,轉(zhuǎn)載時請務(wù)必以超鏈接形式標明文章原始出處以及作者信息。 作者:熬夜的蟲子 點擊查看:博文索引 |

浙公網(wǎng)安備 33010602011771號