【高級設(shè)置】。打開對話框如下圖:隊列長度:在IIS中選中【應(yīng)用程序池】,在應(yīng)用程序池列表中,右鍵你想查看的,在右鍵菜單中選擇【高級設(shè)置】。打開如下對話框:這兩個數(shù)" />

日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

iis最大連接數(shù)和隊列長度

系統(tǒng) 2021 0

最近公司項目的服務(wù)器出現(xiàn)了性能問題,關(guān)于iis負(fù)載過大,當(dāng)客戶問到最大連接數(shù)相關(guān)問題造成很萌的感覺,就查了相關(guān)資料:

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

?

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

iis最大連接數(shù)和隊列長度

?

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

iis最大連接數(shù)和隊列長度

?

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

?

1. IIS最大并發(fā)工作線程數(shù)

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

?

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

?

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

?

所以,如果你用自己的win7系統(tǒng)測試IIS的性能的時候,你可能發(fā)現(xiàn),不管你怎么設(shè)置【最大并發(fā)連接數(shù)】,你的IIS處理能力都很有限。

?

2. 最大并發(fā)連接數(shù)

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

?

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

?

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

?

這里你看明白了吧,【最大并發(fā)連接數(shù)】在我們的測試?yán)又校绊懙搅伺抨牭臄?shù)量。這樣的話,看上去【隊列長度】又不知道什么意思了?

?

3. 隊列長度

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

?

讀到這里,你明白了嗎?

?

結(jié)論

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

?

最大并發(fā)連接數(shù) = 隊列長度 + IIS最大并發(fā)工作線程數(shù)

?

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

iis最大連接數(shù)和隊列長度


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 且末县| 阳西县| 新绛县| 桓台县| 巴林左旗| 沙河市| 霍邱县| 宽甸| 洪洞县| 申扎县| 宝丰县| 思茅市| 华蓥市| 内黄县| 宾川县| 白玉县| 株洲市| 溧阳市| 沐川县| 综艺| 静宁县| 厦门市| 贡觉县| 屏东县| 宜丰县| 龙里县| 故城县| 长海县| 庆元县| 崇仁县| 秭归县| 桂平市| 佛坪县| 南涧| 若尔盖县| 镇雄县| 霞浦县| 五台县| 嘉禾县| 静安区| 安西县|