無法從系統分頁集區配置記憶體

本文提供無法從系統分頁集區配置記憶體的問題解決方案。

適用:Windows Server 2012 R2
原始 KB 編號: 312362

徵狀

當您的伺服器負載過重時,伺服器服務可能會在系統事件記錄檔中重複記錄下列錯誤。 指出伺服器已超出分頁集區內存:

來源 - SRV
類型 - 錯誤
事件標識碼 - 2020
描述-

伺服器無法從系統分頁集區配置,因為集區是空的。
數據-
0000:00040000 00540001 000000000 c00007e4
0010:000000000 c000009a 000000000 000000000
0020:000000000 000000000 000000000b

原因

有數個因素可能會耗盡分頁集區內存的供應。 啟用集區標記並採用 poolsnaps 不同的時間間隔,可協助您瞭解哪一個驅動程式正在取用分頁集區內存。 poolsnaps如果指出 MmSt 標記 (Mm 區段物件原型 PTE) 是最大的取用者,且分頁集區內存已耗盡,或系統正在記錄錯誤事件 2020s,則伺服器上有大量檔案開啟的可能性很大。 根據預設,當系統達到總分頁集區的 80% 時,記憶體管理員會嘗試修剪配置的分頁集區內存。 根據系統設定,計算機上可能的最大分頁集區內存可以是 343 MB,而此數目的 80% 是 274 MB。 如果記憶體管理員的修剪速度不夠快,無法跟上需求,可能會發生本文的一節中所列的事件。 例如,藉由調整記憶體管理員以啟動稍早 (的修剪程式,當其達到 60%) 時,就可以在突然尖峰使用量期間跟上分頁集區需求,並避免分頁集區內存用盡。

解決方案

重要事項

這個章節、方法或工作包含修改登錄的步驟。 然而,不當修改登錄可能會發生嚴重的問題。 因此,請務必謹慎地依照這些步驟執行。 為了有多一層保護,請先備份登錄再進行修改。 如此一來,您就可以在發生問題時還原登錄。 如需有關如何備份和還原登錄的詳細資訊,請按一下下列文章編號,檢視「Microsoft 知識庫」中的文章:
322756 如何在 Windows 中備份及還原登錄

下列微調建議有助於減輕問題:

  1. 啟動登錄 編輯器 (Regedt32.exe) 。

  2. 找出並按下列機碼:
    HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Memory Management

  3. 在 [編輯] 功能表上,按一下 [新增值],然後新增下列登錄值:
    數值名稱:PoolUsageMaximum
    數據類型:REG_DWORD
    基數:十進位
    值數據:60

    將值設定為 60 時,會通知記憶體管理員以 PagedPoolMax 的 60% 開始修剪程式,而不是預設設定 80%。 如果 60% 的閾值不足以處理活動的尖峰,請將此設定縮減為 50% 或 40%。

    數值名稱:PagedPoolSize
    數據類型:REG_DWORD
    基數:十六進位
    值數據:0xFFFFFFFF

    將 PagedPoolSize 設定為 0xFFFFFFFF會配置最大分頁集區,而不會將其他資源配置給計算機。

    注意

    不建議將 0xFFFFFFFF PagedPoolSize 設定用於具有 64GB RAM 的 32 位 Windows Server 2003 型電腦上。 這可能會使免費系統 PTE 項目關閉,並可能導致電腦連續重新啟動。 針對此設定,請根據需求和可用的資源仔細選擇值。

  4. 結束登錄編輯程式。

  5. 重新啟動伺服器,讓變更生效。

狀態

Microsoft 已確認在一節中所列的 Microsoft 產品中有問題。