Suche

Sprache:  
Suchen nach:

Verfügbare Übersetzungen:

[Anleitung] Problembehandlung bei fehlendem ausgelagertem oder nicht ausgelagertem Speicherpool

GILT FÜR:
  • Parallels Virtuozzo Containers for Windows

Kennzeichen

Webdienste (w3svc, named, ftpsvc) funktionieren nicht in Containern.

Auf dem Hardware-Node erscheinen folgende Fehler in der Ereignisanzeige:

Event ID 2020
Event Type: Error
Event Source: Srv
Event Category: None
Event ID: 2020
Description: The server was unable to allocate from the system paged pool because the pool was empty.

Event ID 2019
Event Type: Error
Event Source: Srv
Event Category: None
Event ID: 2019
Description: The server was unable to allocate from the system Non-Paged pool because the pool was empty.

Verschiedene Prozesse können einen WIN32-1450-Fehler hervorrufen:

1450: Insufficient system resources exist to complete the requested service

Infolge dieses Fehlers können zum Beispiel Container nicht mehr starten:

C:\>vzctl start 101     
Starting container ...
Parallels Virtuozzo Containers API function call 'VZVolumeMountExW' failed (C:\vz\Private\101\root.efd, {04588fbf-09b5-42a1-af9b-5f0031dd511c}) err = 1450 
Parallels Virtuozzo Containers API function call 'dq_mount' failed 
Cannot set disk quota for container 101
Cannot mount disk for container 101

Oder es kann kein Backup eines Containers erstellt werden:

* Operation backup_env with the Env(s) ct101 is started
* Backing up environment ct101 to backupnode
...
* Operation backup_env with the Env(s) ct101 is finished with errors: 
Failed to backup partition Acronis Error: Module=7 Code=4, "Write error"{=0}, Tag=0 
Acronis Error: Module=4 Code=3, "Error writing the file."{function="WriteFile"}, Tag=7ceb2cdc9fb1200f 
Acronis Error: Module=0 Code=fff0, "Insufficient system resources exist to complete the requested service."{code=ffffffff800705aa}, Tag=bd28fdbd64edb816 .
Backup operation for node 'vz1' failed: Failed to backup partition Acronis Error: Module=7 Code=4, "Write error"{=0}, Tag=0 
Acronis Error: Module=4 Code=3, "Error writing the file."{function="WriteFile"}, Tag=7ceb2cdc9fb1200f 
Acronis Error: Module=0 Code=fff0, "Insufficient system resources exist to complete the requested service."{code=ffffffff800705aa}, Tag=bd28fdbd64edb816

Ursache

Dem Server fehlt es an nicht ausgelagertem Speicherpool. Der nicht ausgelagerte Speicherpool auf Windows 2003 x86 Systemen ist auf 256 MB begrenzt, die für wichtige Kernel-Operationen verwendet werden.

Aufgrund von Komplikationen bei der Speicherverwaltung in 32-Bit-Betriebssystemen ist der Speicher klein:

  • Bei Windows Server 2003, 32-Bit, mit 2 GB RAM oder mehr beträgt die Grenze für den nicht ausgelagerten Pool 256 MB
  • Bei Windows Server 2008, 32-Bit, beträgt die Grenze für den nicht ausgelagerten Pool 2 GB oder etwas mehr als 75% des physischen Arbeitsspeichers, je nachdem, was geringer ist

Unter 64-Bit-Betriebssystemen – die über einen viel größeren Adressraum verfügen – hat der nicht ausgelagerte Pool eine höhere Grenze:

  • Bei Windows Server 2003, 64-Bit, beträgt die Grenze für den nicht ausgelagerten Pool 128 GB oder etwas mehr als 40% des physischen Arbeitsspeichers, je nachdem, was geringer ist
  • Bei Windows Server 2008 (oder 2008 R2), 64-Bit, beträgt die Grenze für den nicht ausgelagerten Pool 128 GB oder etwas mehr als 75% des physischen Arbeitsspeichers, je nachdem, was geringer ist

Wenn der nicht ausgelagerte Pool überlastet ist, wird das System langsam und reagiert nicht mehr, und einige Softwarekomponenten funktionieren nicht mehr korrekt (beispielsweise werden Verbindungen von IIS zurückgewiesen).

Ursache für Probleme mit dem nicht ausgelagerten Speicherpool können Speicherlecks in Third-Party-Software, Malware oder auch allgemein Überbeanspruchung des Systems durch ressourcenintensive Operationen sein.

Analyse der Kernelspeichernutzung mit dem Speicherpoolmonitor

Verwenden Sie den Windows Task-Manager, um den Wert für den nicht ausgelagerten Pool zu überprüfen. Sollte er hoch ausfallen (> 200 MB in einem 32-Bit-System), ist es sinnvoll, dessen Auslastung zu analysieren und den Server anzupassen.

npp

Laden und installieren Sie das entsprechende Tool-Paket, welches das Dienstprogramm poolmon.exe enthält:

Überprüfen Sie mithilfe von poolmon die Nutzung des ausgelagerten/nicht ausgelagerten Speicherpools und identifizieren Sie die erschöpfenden Speicher-Tags. Beispiele zur Verwendung von poolmon finden Sie hier: PoolMon-Beispiele.

Nachfolgend ein Beispiel für die Analyse der Kernelspeichernutzung. Ausgabe von poolmon:

Tags

Sehen Sie sich die Spalte Bytes an. Dies ist die exakte Auslastung.

Beachten Sie die Tags TPLA und NDpp - wir können sie direkt beeinflussen. Beide stammen aus dem TCPIP-Stack und dem ndis.sys-Treiber. TPLA beansprucht immer rund 5 MB x NUM_CPUs. NDpp ist ein Paket-Scheduler.

Falls die CPU-Auslastung auf dem Server nicht wirklich hoch ist, kann die Anzahl an CPUs zu viel erscheinen. Wenn Sie die Anzahl an logischen CPUs auf einen geringeren Wert begrenzen, reduziert sich auch TPLA entsprechend.

Der NDpp-Anteil kann reduziert werden (oder ganz entfernt), indem Sie verschiedene Paket-Scheduler ausschalten, darunter auch den PVC-Traffic-Shaper sowie QoS-konfigurierte Container.

Es gibt nur einen PVC-bezogenen Tag (Drre) und dessen Anteil an nicht ausgelagertem Pool beträgt nur 14 MB (von bis zu 40 von vornherein erlaubten MB). An diesem Punkt sehen wir keinerlei von den PVC-Komponenten verursachte Lecks des ausgelagerten Speichers.

Analyse der Kernelspeichernutzung pro Prozess

Manchmal können bei bestimmten Prozessen Kernelspeicherlecks auftreten und dies kann herausgefunden werden, indem die Nutzung des ausgelagerten/nicht ausgelagerten Speichers pro Prozess analysiert wird:

  1. Öffnen Sie den Windows Task-Manager, klicken Sie auf die Registerkarte Prozesse, gehen Sie in der Menüleiste zu Ansicht -> Spalten auswählen und aktivieren Sie die Kontrollkästchen bei PID, Sitzungskennung, Handles, Arbeitsspeicher - ausgelagerter Pool und nicht ausgelagerter Pool.

  2. Finden Sie die Prozesse mit dem größten Wert für die Nutzung des ausgelagerten Pools, des nicht ausgelagerten Pools, sowie der Anzahl an Handles heraus, indem Sie die entsprechenden Spalten sortieren lassen - dies sind die potenziellen Verursacher für Speicherlecks.

  3. Ermitteln Sie, welche Container und Dienste zu den Prozessen gehören und beenden/deaktivieren Sie sie mit einem Container-Neustart. Überprüfen Sie, ob sich die Auslastung der ausgelagerten/nicht ausgelagerten Pools stabilisiert hat.

Zusätzliche Ressourcen

Blog "Pushing the Limits of Windows: Paged and Nonpaged Pool"
Verwendung der Überwachung des Speicherpools ("Poolmon.exe") bei Speicherfehlern im Kernelmodus
PoolMon-Beispiele (EN)
Wer verwendet den Speicherpool? (EN)
Artikel "(Non)paged memory pool limit, it might be smaller then you expect"
Artikel "Troubleshooting Nonpaged and Paged Pool Errors in Windows" Gewusst wie: Auffinden von Pooltags, die von Treibern von Drittanbietern verwendet werden
Beitrag "Windows NT Kernel memory pool tags"
Verwaltung von Container-Speicherpools (EN)




909d99074e442b52ce54cc7b31cf065d 4542fc1e09dcc36ad9dbfd547b6b7b3c 2897d76d56d2010f4e3a28f864d69223

FEEDBACK
War dieser Artikel hilfreich?
Sagen Sie uns, wie wir ihn verbessern können.
Ja Nein
 
 
 
 
 
 
Desktopvirtualisierung
- Parallels Desktop 8 für Mac
- Parallels Desktop 8 Switch to Mac Edition
- Unternehmenslösungen
- Parallels Desktop für Mac Enterprise Edition
- Parallels Management-Mac für Microsoft SCCM
- Alle Desktopvirtualisierungsprodukte >>
Hosting- & Cloud-Automatisierungsplattformen
Parallels Plesk Panel Suite
- Parallels Plesk Panel
- Parallels Plesk Automation
- Parallels Web Presence Builder
Parallels Automation Suite
- Parallels Automation
- Parallels Automation for Cloud Infrastructure
- Parallels Business Automation Standard
Parallels Virtualization Suite
- Parallels Cloud Server
- Parallels Virtuozzo Containers
- Parallels Virtual Automation
Services & Weiterführende Informationen
- Cloud Acceleration Services
- Professional Services
- Support Services
- Schulungen & Zertifizierung