現象:高併發時段出現 HTTP 503,效能監視器顯示 Web Service → Current Connections > 20,000,但資料庫、磁碟 I/O、網路均正常。
單一 Worker Process (預設應用程式池進程數 = 1) 無法處理 2 萬+ 併發連接,請求排隊超時觸發 503。單請求處理時間極短,說明業務邏輯無瓶頸,純屬進程併發能力不足。
IIS 管理器 → 應用程式池 → 選中目標池 → 進階設定
進程模型 → 最大工作進程數: 1 → 4
進程模型 → 隊列長度: 1000 → 6000
Current Connections 降至 10,000 以下w3wp.exe 進程| 觀點 | 說明 |
|---|---|
| 網路上常見「建議保持 1」 | 適用於有 Session 親和性、非線程安全舊代碼、共享記憶體衝突場景 |
| 無狀態/Session 外部化 (Redis/SQL) | 適合增大進程數,線性提升併發吞吐 |
| 進程數設定上限 | 建議 ≤ CPU 邏輯核心數,過多反增上下文切換開銷 |
| 隊列長度 | 配合進程數增大,吸收突發流量,避免 503 |
Web Garden 是垂直擴展的快速手段,水平擴展 (多伺服器 + LB) 才是高可用架構的正道。
三大虛擬化平台深度對決:VMware vSphere、Microsoft Hyper-V、Citrix XenServer 誰是您的最佳拍檔?
Linux Apache 啟動報錯 Internal Server Error:mod_rewrite 模組未載入解決方案
Linux 建置 DNS 伺服器實戰 (三):資源記錄格式與七大記錄類型詳解
ASP.NET 1.1 / 2.0+ 跨站攻擊防護:machine.config / web.config 身分模擬與信任層級配置
Linux 將 PHP、MySQL 命令加入 PATH 環境變量的三種方法(臨時/用戶/全局永久)