IIS易混概念小結

来源:https://www.cnblogs.com/yscit/archive/2018/02/27/8478165.html
-Advertisement-
Play Games

IIS連接數 常識: 虛擬主機會限制IIS連接數,關於其含義,差不多每個主機供應商都有一套自己的說法,微軟也沒有給出很明確的解釋; 含義: IIS伺服器可以同時容納客戶請求的最高連接數,準確的說應該叫“IIS限制連接數”; 一次連接: 1.網站html請求,html中的圖片資源,html中的腳本資源 ...


IIS連接數

常識:

  虛擬主機會限制IIS連接數,關於其含義,差不多每個主機供應商都有一套自己的說法,微軟也沒有給出很明確的解釋;

含義:

  IIS伺服器可以同時容納客戶請求的最高連接數,準確的說應該叫“IIS限制連接數”;

一次連接:

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

2.如果網頁採用框架(框架內部嵌套網頁請求),那麼一個框架(iframe)即一次連接

3.如果網頁彈出視窗(視窗內部嵌套網頁請求),那麼一個視窗一個連接

因此,限制連接數即為虛擬主機供應公開的IIS連接數標準,如果購買的IIS連接數為50,那麼我們不得不考慮網站的內容框架和訪問量。

然而同,事實上,很多企業門戶網站訪問量低的驚人,IIS連接數為50也是綽綽有餘了。

設置位置:

IIS(6.2版本,以下所有截圖均此版本)中  “點擊網站”->“右擊切換到功能視圖”->“選中一個網站”->“點擊界面右側的‘限制’鏈接”->“編輯網站限制”

 

  雖然伺服器中可以規定每個站點的最大連接數,但同時也存在伺服器的總計最大連接數。所以,即使規定用戶站點的最大連接數為不限,當伺服器達到了最大連接數時,仍不能訪問站點。而伺服器的最大連接數一般在1000——2000。

IIS併發連接數

設置位置:“選中一個網站”->“高級設置”->"限制"->"最大併發連接數"

 

預設最大併發連接數為:4294967295,這是一個很驚人的數字!那麼問題來了:

1. 很多虛擬主機供應商所說的無併發連接數限制真的成立嗎?

2. 每個連接的處理,IIS都會開啟一個線程去處理,假設這個處理方式成立,那麼4294967295個併發連接請求來了是否IIS會立即啟動4294967295個線程去處理?

對於1:很顯然不成立,最大併發連接數的設置絕對有上限

        對於2:這是很多朋友的誤區,假設4294967295併發連接同時來了,IIS不會立即啟動4294967295個線程去處理,因為這不現實,對於處理連接,IIS是有“最大併發工作線程數”限制的,該數字跟操作系統相關,win7系統的IIS的值是10(或者其他不確定),VS2012自帶的IIS Express的值是80。對於windows伺服器版本的系統的具體值不清楚,即4294967295個併發連接來了後,(這邊以win7下的10為例,假設隊列長度為0),iis第一時間只能啟動10個工作線程去處理,那麼其他4294967285必須排隊,排隊對用戶的體驗來說就是網頁正在載入,但是什麼都不顯示,然後此時購買了據虛擬主機供應商所說的無併發連接數限制的客戶就要開始狂暴了,為何購買了所謂的“無限併發連接數”,還是會一直在載入的情況,我只能說這就是IIS處理能力有限的問題了。然而隊列以外的就會直接返回“HTTP Error 503. The service is unavailable.”

IIS最大併發工作線程數

  這個在上面有所涉及,簡單的說就是IIS在併發連接請求過來時的處理機制,它會更機智的以某個數量級為單位來分批處理,讓沒有處理連接請求排隊等待,用戶瀏覽器中對於排隊等待的響應就是“正在載入”,這比頁面直接顯示“HTTP Error 503. The service is unavailable.”更加能讓人接受,但是切勿氣急敗壞的怒點刷新按鈕,因為點的越多,你的請求在排隊隊伍中越靠後。

  當然很多朋友會說,為什麼我有時候第一次刷不出來,重新多刷一次內容就出來了,

  可能是:

  1、頁面腳本哪個地方下載或者處理出了問題,導致頁面顯示異常或者直接不顯示

  2、你重新刷新的那個秒級別的操作,web伺服器更快速的已經處理好了其他隊列的請求或者他人放棄了對web伺服器連接請求的操作

  3、路由或者寬頻網路運營商問題(不穩定)

  4、瀏覽器或者本身電腦問題

  我不知道“IIS最大併發工作線程數”有無地方可以設置,知道的朋友可以給我留言,謝謝

  那麼現在問題來了,最大併發連接數,影響了排隊的數量,那麼有沒有進步影響排隊數量的設置? 有的:隊列長度

隊列長度

  1. 概念:即允許排隊最大連接數限制,但實際允許的最大排隊長度限制,還受IIS連接數限制設置的限制,二者取小。

  2. 設置:找到網站的所屬應用程式池,“右擊高級設置”->"常規"->"列隊長度",預設是1000,可設範圍是10-65535 之間。

最大工作進程數

Web園:

  IIS 6.0允許將應用程式池配置成一個Web園(Web Garden),即最大工作線程數大於1的情況,當伺服器的負載較小,不需要額外的工作進程時,IIS 6.0在一定的時間後(預設20分鐘,可配置)自動縮減實際的工作進程數量;如果負載變大,需要額外的工作進程,IIS 6.0再次增加工作進程數量。這一切操作都自動進行,不需要管理員干預。

設置位置:

  找到網站的所屬應用程式池,“右擊高級設置”->"進程模型"->"最大工作進程數",預設1,最大可以設置為4000000:

 

註意事項:

設置依據

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

session共用問題

  如果網站沒有用到session機制,則不會引發此問題。如果用到了session機制進行傳值和保存數據,則需要考慮在應用程式池多個工作進程間進行session共用,防止出現session丟失的問題。存儲方式選用StateServer或者SQLServer會更好,另外多個工作進程切換時會有上下文複製,這也是資源消耗更多地方。

合理的資源回收機制

  大多數應用系統都存在工作時間使用量高、非工作時間使用量低的情況,針對這種現象,在系統非忙時應合理的釋放操作系統資源,因此,應合理設置應用程式池的【限制超時】和【回收時間間隔】屬性。

 

【小結】併發能力 = 實際隊列長度限制(隊列長度限制與IIS連接數限制取小)* 最大工作進程數

 

詳細參考鏈接:http://www.cnblogs.com/yinhaichao/p/4060209.html


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 解決方案: 1. 調整option中的grid.top值才能避免重疊;(可以設置定製,也可以定義了一個計算公式) 2. 文檔註明【特殊字元串 ''(空字元串)或者 '\n' (換行字元串)用於圖例的換行。】 轉載來源:http://blog.csdn.net/doleria/article/deta ...
  • select和from語句 註意:select和from可以不設置,預設情況下: select獲取映射表的所有欄位; from獲取實體映射表的表名;如果設置select則必須設置frorm,但是允許僅設置from而不設置select Where語句 設置參數 通過@數字設置參數,例如: 定義命名參數 ...
  • 前端HTML <!DOCTYPE html> {% load static %} {% get_static_prefix as getstatic %} <html lang="zh-CN"> <head> <meta charset="UTF-8"> <meta http-equiv="x-ua ...
  • 用WebService開發介面十分方便。但介面提供的數據不應是對所有人可見的,我們來利用SoapHeader寫一個簡單的身份驗證Demo 目錄 創建WebService項目(帶SoapHeader) 利用IIS發佈WebService 添加服務引用並利用SoapHeader驗證訪問介面的例子 一、創 ...
  • 1.創建excel方法 /// <summary> /// 創建Excel表格 /// </summary> /// <param name="dt">數據流</param> /// <param name="FileName">文件名稱</param> public static void Cre ...
  • 前兩天,當我還在老家收拾行旅,準備回廣州,為IT連的創業再戰365天時,有網友扣上問:Taurus.MVC中如何實現認證和許可權控制,最好能做個小例子。我一不小心回了句:等回廣州我再寫篇文章......然後,今天就來補文章了〜〜〜〜 ...
  • Ocelot(https://github.com/TomPallister/Ocelot)是一個用.net core實現的API網關,Butterfly(https://github.com/ButterflyAPM/butterfly)是用.net core實現的全程式跟蹤,現在,Ocelot中... ...
  • 做過單元測試的同學大概都知道以上幾種測試框架,但我一直很好奇它們到底有什麼不同,然後搜到了一篇不錯的文章清楚地解釋了這幾種框架的最大不同之處。 地址在這裡:http://www.tuicool.com/articles/F3eEn2j 簡而言之,三者是非常相似的,如下所示: 上面是NUnit的,XN ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...