故障現象
- 伺服器階段性死機、無法遠程連線、服務無響應。
- 重啟恢復正常,過段時間 (數小時~數天) 復發。
- 事件日誌大量重複:
Event ID: 2020 (Source: Srv)
伺服器無法從系統分頁池進行配置,因為分頁池當前為空。
Event ID: 333 (Source: System/Registry)
由註冊表引起的 I/O 操作發生不可恢復錯誤。註冊表將無法讀取、寫入或刷新包含註冊表系統映像的檔案。
根因分析
- Paged Pool (分頁池):核心模式記憶體區域,可分頁至磁碟,存放:檔案物件、註冊表鍵值、Token、進程/線程物件、網路緩衝區等。
- 32 位 Windows (Server 2003/x86):核心虛擬地址空間僅 2GB (預設),Paged Pool 上限 ~470MB (受
PagedPoolSize 限制)。
- 記憶體洩漏驅動/服務:不斷分配 Paged Pool 而不釋放 (如舊版防毒過濾驅動、備份 Agent、RAID 監控工具),導致池耗盡。
- 耗盡後果:
- 新建檔案/註冊表操作失敗 (Event 2020/333)。
- 系統服務 (Srv、LSASS、DNS、DHCP) 無法分配核心物件 → 服務掛起/崩潰。
- 遠程桌面 (TermService) 無法建立會話 → 運維無法登入排查。
註冊表緩解方案 (治標,非治本)
路徑:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management
| 值名稱 | 類型 | 基數 | 推薦值 | 含義 |
PoolUsageMaximum | REG_DWORD | 十進制 | 40 | 觸發記憶體管理器修剪的閾值:預設 80% → 改 40%,更早開始回收,緩解耗盡衝擊。 |
PagedPoolSize | REG_DWORD | 十六進制 | 0xFFFFFFFF (-1) | 系統自動計算最大分頁池 (受核心地址空間限制),不人為限制,爭取最大可用空間。 |
操作步驟
- Win+R →
regedit。
- 定位上述路徑,右鍵新建/修改兩個 DWORD 值。
- 重啟伺服器生效。
治本方案:找到並修復洩漏源頭
1. 使用 Poolmon 識別洩漏標籤
# 安裝 Windows Driver Kit (WDK) 或 Windows SDK,獲得 poolmon.exe
poolmon -p # 顯示 Paged Pool 標籤統計,按 'P' 切換到 Paged Pool,按 'B' 按分配量排序
# 觀察前幾名 Tag (如 "File", "Reg ", "Thre", "MmCa", 自定義驅動 Tag)
# 記下可疑 Tag,對應驅動/服務
2. 驗證可疑驅動/服務
- 第三方防毒/EDR/Agent → 升級/替換/排除路徑。
- 備份軟體 (Veeam/Veritas/自研) → 更新版本、調整並發/緩衝區。
- 硬體監控 (IPMI/RAID/HBA 驅動) → 更新至最新 WHQL 版本。
- 自研核心模式驅動 → 代碼審計
ExAllocatePoolWithTag / ExFreePool 配對。
3. 升級至 64 位系統 (徹底解決)
- x64 核心虛擬地址空間 8TB+,Paged Pool 上限數十 GB,幾乎不可能耗盡。
- Windows Server 2003 x64 / 2008 R2 / 2012 R2 / 2016 / 2019 / 2022 均支援。
- 若業務允許,遷移至 64 位是一次性解決的最佳路徑。
監控與預警 (納入 Zabbix/Prometheus/Datadog)
# PowerShell 獲取 Paged Pool 使用量
Get-Counter "\Memory\Pool Paged Bytes"
Get-Counter "\Memory\Pool Nonpaged Bytes"
# 關鍵指標
- Pool Paged Bytes / Pool Paged Bytes Peak (接近峰值報警)
- Pool Paged Allocs / Frees (分配釋放不匹配)
- 處理器 \ Pool Paged Bytes (每進程)
告警閾值:Paged Pool 使用 > 70% 最大值 (32位約 330MB) → 立即調查。
總結
Event 2020 + 333 = Paged Pool 耗盡 = 32位系統核心記憶體洩漏。
註冊表調優 (PoolUsageMaximum=40, PagedPoolSize=-1) 可延緩發作、爭取排查時間。
治本 = Poolmon 定標籤 → 找驅動 → 升級/替換/遷移 64位。
納入監控體系,早發現、早修復、不死機。