Dela via


Det går inte att allokera minne från den systemsidiga poolen

Den här artikeln innehåller en lösning på problemet att det inte går att allokera minne från den systemsidiga poolen.

Ursprungligt KB-nummer: 312362

Symptom

När servern är hårt belastad kan servertjänsten logga följande fel upprepade gånger i systemhändelseloggen. Det anger att servern har slut på växlingsbara poolminnen:

Källa – SRV
Typ – Fel
Händelse-ID – 2020
Beskrivning-

Servern kunde inte allokera från den systemsidiga poolen eftersom poolen var tom.
Data -
0000: 00040000 00540001 00000000 c00007e4
0010: 00000000 c000009a 000000000 00000000
0020: 00000000 00000000 00000000b

Orsak

Flera faktorer kan tömma tillgången på sidsidigt poolminne. Om du aktiverar pooltaggning och tar poolsnaps vid olika tidsintervall kan det hjälpa dig att förstå vilken drivrutin som förbrukar sidpoolminne. poolsnaps Om indikerar att MmSt-taggen (mm-avsnittsobjektet prototyp-PTEs) är den största konsumenten och sidpoolminnet har tömts eller systemet loggar felhändelse 2020s, finns det en stor sannolikhet att det finns ett stort antal filer som är öppna på servern. Minneshanteraren försöker som standard trimma allokerat sidpoolminne när systemet når 80 procent av den totala sidiga poolen. Beroende på systemkonfigurationen kan det maximala sidiga poolminnet på en dator vara 343 MB och 80 procent av det här antalet är 274 MB. Om Minneshanteraren inte kan trimma tillräckligt snabbt för att hänga med i efterfrågan kan händelsen som anges i avsnittet "Symptom" i den här artikeln inträffa. Genom att justera Minneshanteraren för att starta trimningsprocessen tidigare (till exempel när den når 60 procent) skulle det vara möjligt att hålla jämna steg med efterfrågan på den växlingsbara poolen under plötslig toppanvändning och undvika att få slut på sidpoolminne.

Åtgärd

Viktigt!

Det här avsnittet, metoden eller uppgiften innehåller steg som beskriver hur du ändrar registret. Det kan uppstå allvarliga problem om du gör detta felaktigt. Följ därför noggrant dessa steg. För extra skydd, säkerhetskopiera registret innan du ändrar det. Du kan sedan återställa registret om det uppstår problem. Om du vill veta mer om hur du säkerhetskopierar och återställer registret klickar du på följande artikelnummer och läser artikeln i Microsoft Knowledge Base:
322756 Säkerhetskopiera och återställa registret i Windows

Följande justeringsrekommendering har varit användbar för att lindra problemet:

  1. Starta Registereditorn (Regedt32.exe).

  2. Leta upp och klicka sedan på följande nyckel i registret:
    HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Memory Management

  3. På menyn Redigera klickar du på Lägg till värde och lägger sedan till följande registervärde:
    Värdenamn: PoolUsageMaximum
    Datatyp: REG_DWORD
    Radix: Decimal
    Värdedata: 60

    Om värdet anges till 60 uppmanas Minneshanteraren att starta trimningsprocessen på 60 procent av PagedPoolMax i stället för standardinställningen på 80 procent. Om ett tröskelvärde på 60 procent inte räcker för att hantera aktivitetstoppar kan du minska den här inställningen till 50 procent eller 40 procent.

    Värdenamn: PagedPoolSize
    Datatyp: REG_DWORD
    Radix: Hex
    Värdedata: 0xFFFFFFFF

    Om du anger PagedPoolSize till 0xFFFFFFFF allokeras den maximala sidpoolen i stället för andra resurser till datorn.

    Varning

    Inställningen 0xFFFFFFFF PagedPoolSize rekommenderas inte för användning på 32-bitars Windows Server 2003-baserade datorer med 64 GB RAM-minne. Detta kan leda till att PTE-posten för det kostnadsfria systemet tas ned och kan orsaka kontinuerlig omstart av datorn. För den här konfigurationen väljer du noggrant ett värde baserat på kraven och tillgängliga resurser.

  4. Avsluta Registereditorn.

  5. Starta om servern för att ändringarna ska börja gälla.

Status

Microsoft har bekräftat att det är ett problem i De Microsoft-produkter som visas i avsnittet "Gäller för".