六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

深入理解IIS的多線程工作機制

[摘要]首先讓我們來看看IIS里面的這2個數字:最大并發連接數, 隊列長度。 先說這2個數字在哪里看。 最大并發連接數:在IIS中選中一個網站, 右鍵網站名稱, 在右鍵菜單中找到并點擊【管理網站】-&...

首先讓我們來看看IIS里面的這2個數字:最大并發連接數, 隊列長度。 先說這2個數字在哪里看。

 

最大并發連接數:在IIS中選中一個網站, 右鍵網站名稱, 在右鍵菜單中找到并點擊【管理網站】->【高級設置】。 打開對話框如下圖:

深入理解IIS的多線程工作機制

 

隊列長度:在IIS中選中【應用程序池】, 在應用程序池列表中, 右鍵你想查看的, 在右鍵菜單中選擇【高級設置】。 打開如下對話框:

深入理解IIS的多線程工作機制

 

這兩個數字表面上看是影響我們站點的并發處理能力的, 但是具體是如何影響一個網站的并發處理能力的呢?要完全理解IIS的并發處理能力, 除了這2個數字, 實際上還有一個非常關鍵的數字:IIS最大并發工作線程數。

 

1. IIS最大并發工作線程數

在以前很長一段時間, 我一直以為IIS的【最大并發連接數】就是影響IIS最大并發工作線程數。 我以為將【最大并發連接數】設置為1萬, 那么當1萬個請求同時到來的時候, IIS會開啟1萬個線程進行處理, 如果同時到來2萬個請求, 由于最大并發連接數只有1萬, 那么剩余1萬個請求就會放在隊列里面, 當前面的1萬個線程中某個完成了請求之后, 再從隊列里面取一個請求。 但, 這個理解是完全錯誤的, 相信很多朋友也跟我有同樣的理解。

 

現在, 首先讓我們來理解什么是【IIS最大并發工作線程數】。 這個數字在IIS里面是沒有界面進行設置的, 我以前根本就不知道有這個數字。 這個數字跟操作系統相關, 我的win7系統的IIS的值是10, VS2012自帶的IIS Express的值是80。 對于windows服務器版本的系統的具體值是多少沒有測試過, 但我猜應該也是有限制的。

 

這個數字到底是什么意思呢?回到上面舉的例子, 當1萬個請求同時進入IIS的時候, 由于win7系統的IIS只有10個工作線程, 那么這時1萬請求中只有10個請求會在第一時間被處理, 剩余9990個請求都需要排隊。 也就是說, IIS最多能夠安排10個線程同時處理請求(win7版本的IIS, 有的可能是20)。

 

所以, 如果你用自己的win7系統測試IIS的性能的時候, 你可能發現, 不管你怎么設置【最大并發連接數】, 你的IIS處理能力都很有限。

 

2. 最大并發連接數

上面講的IIS最大并發工作線程數, 看上去就是IIS的并發處理能力, 如果是這樣, 那么【最大并發連接數】有什么意義呢?

 

還是上面的例子, 如果1萬個請求同時到來, 而我們的win7系統的IIS最大并發工作線程數只有10, 這時如果將【最大并發連接數】設置為100, 會有什么效果呢?答案是:只有100個請求會收到正常響應, 剩余9900個請求直接返回503(服務不可用)的錯誤。 這時, 實際上進入排隊等待的只有90個請求。

 

再換下測試參數, 如果將【最大并發連接數】設置為5000, 又會有什么效果?答案你可能已經知道了, 那就是一開始就有5000個請求直接返回503, 剩下5000個請求慢慢正常返回。

 

這里你看明白了吧, 【最大并發連接數】在我們的測試例子中, 影響到了排隊的數量。 這樣的話, 看上去【隊列長度】又不知道什么意思了?

 

3. 隊列長度

在上面的例子中, 如果1萬個請求同時到來, 【最大并發連接數】設置為100。 這時我們知道, IIS首先會安排那10個線程去處理10個請求, 剩下90個請求都需要排隊。 這時如果我們將【隊列長度】設置為50, 那會出現什么情況?答案是, 40個請求會直接返回503服務不可用的錯誤(因為隊列只有50個的長度, 剩下的40個就無法排隊了), 最終只有60個請求會被正確處理。

 

讀到這里, 你明白了嗎?

 

結論

當很多請求同時到來的時候, IIS會根據【最大并發連接數】來判斷是否有多余的請求, 多余的請求直接返回503, 然后再根據【隊列長度】來判斷是否有多余的請求排不了隊, 排不了隊的也直接返回503。 所以, 如何設置【最大并發連接數】和【隊列長度】, 實際上是有公式可以計算的:

 

最大并發連接數 = 隊列長度 + IIS最大并發工作線程數

 

最后再說說IIS的默認值對我們網站并發處理能力的影響。 IIS默認的【最大并發連接數】為4294967295(42億多), 而【隊列長度】默認值為1000。 對于windows server版本的IIS, 最大并發工作線程數可能幾百(猜測, 可能沒有限制), 按照這個默認值, 那么IIS同時處理的請求數也就1000多。 1000多這個數字才是IIS真正的并發處理能力, 而這個能力跟我們的代碼沒有關系。 那么哪些指標是評判我們網站的處理能力的呢?最重要的指標可能莫過于【每秒處理請求數】吧(在性能分析器里面可以查看), 這個數字也叫吞吐率。 如果每個請求處理速度非?, 那么那么網站吞吐率就大, 吞吐率大那么支持的同時在線人數就大。 如果要做秒殺, 那就看你的秒殺相關的URL支持多大的吞吐率吧。 了解了這么多指標, 還沒有涉及到CPU的計算能力。 CPU的計算能力是如何影響網站的處理能力的呢?還是那么多請求, 如果CPU很強大, 能夠縮減每個請求的處理時間, 那必然會提高吞吐率。 還有很多的請求, 如果花在網絡傳輸或者到數據庫的傳輸時間比較多, 這部分等待時間CPU是閑置的, 如果能夠提高CPU的利用率, 也可能提高網站的處理能力, 最充分的利用服務器的資源。 如果不想改代碼而想提高CPU利用率, 可以在IIS的應用程序池中設置最大工作進程數(默認值為1), 可以設置為10如果當前CPU利用率只有百分之幾的話, 調整這個數值需要特別注意每一個工作進程是獨立的應用程序, 全局靜態變量不共享。


網站建設是一個廣義的術語,涵蓋了許多不同的技能和學科中所使用的生產和維護的網站。




主站蜘蛛池模板: 欧美一级免费看 | 亚洲人免费 | 四虎永久免费影院在线 | 羞羞一区二区三区四区片 | 日本一本高清视频 | 日本gogo亚洲高清大胆 | 天堂网在线网站成人午夜网站 | 欧美特黄a级高清免费大片 欧美桃色视频 | 四虎影院在线观看网站 | 综合久久婷婷 | 亚洲精品男人天堂 | 色伊人影院 | 青草视频免费观看在线观看 | 四虎永久精品免费观看 | 五月天婷婷丁香 | 五月天婷婷在线观看视频 | 天堂a在线 | 最新69堂国产成人精品视频 | 亚洲国产亚洲综合在线尤物 | 欧洲精品视频完整版在线 | 亚洲精品图区 | 日本午夜网站 | 青草青草视频 | 婷婷亚洲综合一区二区 | 亚洲综合专区 | 日韩毛片免费视频 | 青春草在线视频精品 | 欧美一级黄视频 | 亚洲视频在线看 | 欧美香蕉视频在线观看 | 日本人视频18jizz免费 | 青青草国产免费久久久91 | 伊人狠狠色丁香婷婷综合下载 | 亚洲欧美综合一区 | 中文字幕波多野不卡一区 | 午夜网站入口 | 天天天综合 | 色91视频 | 日韩a级片| 日本成人激情视频 | 午夜激情视频 |