1. 程式人生 > >iis最大併發連線數、佇列長度、最大併發執行緒數、最大工作程序數

iis最大併發連線數、佇列長度、最大併發執行緒數、最大工作程序數

最大併發連線數:

 1、影響因素:

a.網站html請求,html中的圖片資源,html中的指令碼資源,其他需要連線下載的資源等等,任何一個資源的請求即一次連線(雖然有的資源請求連線響應很快)

b.如果網頁採用框架(框架內部巢狀網頁請求),那麼一個框架即一次連線

c.如果網頁彈出視窗(視窗內部巢狀網頁請求),那麼一個視窗一個連線

2、設定位置:網站->“高階設定”->"限制"->"最大併發連線數"

佇列長度

設定位置:IIS中選中【應用程式池】,在應用程式池列表中,右鍵你想檢視的,在右鍵選單中選擇【高階設定】,預設的佇列長度為1000

IIS最大併發工作執行緒數。

1、

配置檔案:C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config\machine.config 2、修改引數: <processModel autoConfig="false" maxWorkerThreads="200" maxIoThreads="200" minWorkerThreads="100" />

MaxWorkerThreads引數和maxIoThreads引數隱式地乘以 Cpu 的數量。例如,如果您有兩個處理器,是以下的最大工作執行緒數︰2*maxWorkerThreads

MinWorkerThreads= maxWorkerThreads/2

  1. 優化每個處理器限制對執行緒 ASP 屬性的值(預設25,已修改成50)

a.在連線窗格中,選擇 web 伺服器,請單擊以選中功能檢視,然後雙擊ASP功能。

b.單擊以展開限制屬性下行為,單擊處理器限制每個執行緒,輸入所需的值執行緒每個處理器限制單擊應用中操作窗格。

三者關係

  1. iis最大併發連線數,佇列長度,最大併發工作執行緒數關係:
  1. 三者確定了最大併發數
  2. 當很多請求同時到來的時候,IIS會根據【最大併發連線數】來判斷是否有多餘的請求,多餘的請求直接返回503,然後再根據【佇列長度】來判斷是否有多餘的請求排不了隊,排不了隊的也直接返回503。所以,如何設定【最大併發連線數】和【佇列長度】,實際上是有公式可以計算的:

最大併發連線數 = 佇列長度 + IIS最大併發工作執行緒數

  1. 例子:如果1000個請求同時到來,【最大併發連線數】設定為100,只有100個請求會收到正常響應,剩餘900個請求直接返回503(服務不可用)的錯誤,【佇列長度】設定為40,那麼60個請求會直接返回503服務不可用的錯誤(因為佇列只有40個的長度,剩下的60個就無法排隊了)

最大併發工作執行緒數為10,10個請求被正確處理,30的請求排隊等待

最大工作程序數

  1. 將應用程式池配置成一個Web園(Web Garden)

2、設定:網站的所屬應用程式池,“右擊高階設定”->"程序模型"->"最大工作程序數",預設1,如果這個值大於 1,那麼當有連線請求時會啟動多個新的工作程序例項,可啟動的最多程序數為您所指定的最大工作程序數,後續更多的請求將以迴圈的方式傳送至工作程序,這個每個工作程序都能承擔負載一些連線請求,當然是以消耗cpu等硬體做代價。

3、最大工作程序數的設定方法:(拷貝)按照每工作程序能承載30個併發的原則來確定應用程式池的最大工作程序數。同時要注意,每個工作程序大約會佔用200M左右的系統記憶體,在設定最大工作程序數的時候,要主要最大工作程序數與200M的乘積不要超過系統最大可用記憶體數。一般情況下,建議按照每次增加5個工作程序數的方式對最大工作程序數進行調整,調整完後對網站觀察一段時間,如依然無法滿足要求,再繼續增加5個工作程序數。

                   4、在此模式下,解決session共享的問題

                            a、啟動ASP.NET 狀態服務

                   b、配置回話狀態