應用程式集區屬性結構
透過「回收」與「效能」兩大索引標籤,精細控制背景進程生命週期與資源配額。
回收設定詳解
| 設定項目 | 對應 ASP.NET 設定 | 說明 |
| 記憶體回收 | memoryLimit | 指定背景進程可用實體/虛擬記憶體上限 (MB)。超過即回收替換,請求重導向新進程。支援分別設定實體與虛擬上限,優於舊版百分比設定。 |
| 要求數回收 | requestLimit | 處理指定數量請求後回收。預設停用。適合解決記憶體洩漏累積問題。 |
| 定時回收 | timeout | 固定時間間隔 (預設 120 分鐘) 回收。可停用。避免長期運行導致資源碎片化。 |
效能設定詳解
| 設定項目 | 對應 ASP.NET 設定 | 說明 |
| Web Garden (網路花園) | webGarden + cpuMask | 「背景進程最大數目」> 1 即啟用。多進程並行處理請求,各進程擁有獨立 Application State、In-Proc Session、快取、靜態資料。不適合需維護狀態的應用。 |
Web Garden 關鍵機制
- 循環調度: 請求按順序分派給進程 0,1,2,3... 循環
- Session State 問題: In-Proc 模式下請求必須回到原進程,需確保用戶端保持連線 (Keep-Alive) 或改用 StateServer/SQLServer 模式
- 效能評估: 啟用前後必須實測吞吐量與延遲,並非所有應用受益
配置操作步驟
- 開啟 IIS 管理主控台 → 展開本機 → 應用程式集區
- 右鍵目標集區 → 內容 → 「回收」/「效能」索引標籤
- 依需求勾選並填入數值 → 確定
圖示說明
最佳實踐建議
- 生產環境建議啟用「記憶體回收」(實體 500-1000 MB、虛擬 1500-2000 MB) 防止單一進程耗盡資源
- 若應用存在記憶體洩漏且暫時無法修復,啟用「要求數回收」(如 5000 次)
- 定時回收保留預設 120 分鐘,配合低峰期排程
- Web Garden 僅在 CPU 核心數 > 1 且應用為無狀態 (靜態內容、Web API、圖片服務) 時考慮啟用,進程數設為邏輯核心數
- 搭配健康偵測 (Ping、啟動載入頁面) 自動移除異常進程