Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> 電腦軟體教學 >> 伺服器技術 >> 關於伺服器

IIS 連接數 (Web 連接數) 深度解析:定義、計算、峰值估算與限制調優

編輯:關於伺服器

什麼是 IIS 連接數?

IIS 連接數 (Web 連接數) = 同一時刻伺服器接受的並發 TCP 連接總數。
通俗理解:有多少個瀏覽器視窗/標籤頁正在同時請求你的網站資源。

連接建立與釋放生命週期

  1. 用戶輸入 URL / 點擊鏈接 → 瀏覽器解析域名 → 建立 TCP 連接 (三次握手)。
  2. 發送 HTTP 請求 (GET/POST/...)。
  3. 伺服器處理 → 回傳 HTTP 響應 (HTML/CSS/JS/圖片/JSON/...)。
  4. 瀏覽器接收 → 關閉連接 (四次揮手) 或 Keep-Alive 保持連接複用。
  5. 關鍵點:現代瀏覽器對同一域名預設並發 6 條連接 (HTTP/1.1),HTTP/2 單連接多路複用。
  6. 為什麼「一個頁面產生多個連接」?

    • 頁面包含:HTML + 5 張圖片 + 3 個 CSS + 2 個 JS + 1 個字體 + 2 個 AJAX API = 14 個資源。
    • 瀏覽器並發下載 (6 條/域名) → 瞬間產生 6-14 條並發連接。
    • 資源下載完成 → 連接釋放/進入 Keep-Alive 池。
    • 單次頁面瀏覽的連接佔用時間通常僅 10-200ms (視頻寬、伺服器速度、網路延遲)。

    經驗估算公式

    峰值 IIS 連接數 ≈ 同時在線瀏覽器數 × 平均並發連接數/瀏覽器
    
    典型值:
    - 靜態資源多、未合併壓縮:8-12 條/瀏覽器
    - 啟用 Keep-Alive、資源合併、CDN 分流:3-6 條/瀏覽器
    - HTTP/2 + 域名分片優化:1-2 條/瀏覽器 (多路複用)
    
    實例:日均 26 萬 IP,觀察峰值 1800 連接 → 推算約 900 瀏覽器同時在線 (1800 ÷ 2)。
    

    IIS 連接數限制與調優

    1. 應用程式池隊列長度 (queueLength / appRequestQueueLimit)

    • 預設:1000 (IIS 6) / 5000 (IIS 7+)。
    • 超過限制 → 返回 503 Service Unavailable。
    • 調大:appcmd set apppool "DefaultAppPool" /queueLength:10000 或 Web.config <httpRuntime appRequestQueueLimit="10000" />。

    2. 並發請求限制 (MaxConcurrentRequestsPerCPU / MaxConcurrentThreadsPerCPU)

    • ASP.NET 4.0+ 預設:5000 請求/CPU、無限線程 (自動調節)。
    • 舊版需手動調整 aspnet.config。

    3. 網站層級連接限制 (IIS 管理員 → 網站 → 限制 → 連接數)

    • 預設:無限制 (4,294,967,295)。
    • 可設定上限防禦 CC 攻擊,但會誤傷正常高併發。

    4. 核心模式設定 (http.sys 註冊表)

    • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP\Parameters
        MaxConnections (預設無限制)
        MaxFieldLength / MaxRequestBytes (防大頭攻擊)

    監控與告警指標

    優化策略:降低單用戶連接佔用

    1. 啟用 Keep-Alive:httpProtocol allowKeepAlive="true",複用連接,減少握手。
    2. 資源合併壓縮:CSS/JS 合併、圖片 Sprite、WebP、Gzip/Brotli,減少請求數。
    3. 靜態資源上 CDN:卸載 80%+ 連接至邊緣節點。
    4. HTTP/2:單連接多路複用,頭部壓縮,顯著降低並發連接數 (需 HTTPS)。
    5. 域名分片 (HTTP/1.1 時代):static1.domain.com, static2.domain.com 繞過 6 連接限制 (HTTP/2 下反模式)。

    總結

    IIS 連接數 = 並發 TCP 連接快照。
    峰值估算 = 同時在線瀏覽器 × 平均並發連接。
    限制調優 = 隊列長度 + 應用程式池併發 + http.sys 參數。
    根治高連接 = Keep-Alive + 資源優化 + CDN + HTTP/2。
    建立連接數基線畫像,異常即告警,從容應對流量洪峰與 CC 攻擊。

    Copyright © Windows教程網 All Rights Reserved
    指標來源告警閾值建議
    Current ConnectionsIIS 計數器 / appcmd list wp / 監控 Agent> 80% 佇列長度 或 > 歷史峰值 1.5 倍
    Connection Rejected (503)IIS 日誌 / HTTP.sys 日誌 / 監控> 0 (任何拒絕即告警)
    Queue Length應用程式池計數器> 50% 最大隊列
    TCP 連接狀態分佈netstat -an / Get-NetTCPConnectionTIME_WAIT > 10000 可能耗盡埠