Memory Dump erstellen: Unterschied zwischen den Versionen

Aus Wiki-WebPerfect
Wechseln zu: Navigation, Suche
 
(5 dazwischenliegende Versionen des gleichen Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
 
[[Datei:Memory-dump-size.png|thumb|right|550px|Beispiel: Host mit 16GB Memory]]
 
[[Datei:Memory-dump-size.png|thumb|right|550px|Beispiel: Host mit 16GB Memory]]
'''<span style="color:red">Bevor die Memory Dumps aktiviert werden bzw. die Registry-Setting geändert werden, empfehle ich die aktuellen Settings zu merken um dies danach wieder rückgängig zu machen!</span>'''
+
'''<span style="color:red">Bevor die Memory Dumps aktiviert werden bzw. die Registry-Setting geändert werden, empfehle ich die aktuellen Settings zu merken.</span>'''
  
 
== Location des Dumps ändern (Beispiel Laufwerk X:)==
 
== Location des Dumps ändern (Beispiel Laufwerk X:)==
 
<source lang="powershell">Set-ItemProperty –Path HKLM:\System\CurrentControlSet\Control\CrashControl –Name DumpFile –value X:\MEMORY.DMP</source>
 
<source lang="powershell">Set-ItemProperty –Path HKLM:\System\CurrentControlSet\Control\CrashControl –Name DumpFile –value X:\MEMORY.DMP</source>
 +
 +
== Aktivierung Dump für NMI-Crash (Dient zur Reproduzierung) ==
 +
<source lang="powershell">Set-ItemProperty –Path HKLM:\System\CurrentControlSet\Control\CrashControl –Name NMICrashDump –Value 1 </source>
 +
  
 
== Dump Konfigurationen/Arten ==
 
== Dump Konfigurationen/Arten ==
Zeile 12: Zeile 16:
 
3 = Small Memory Dump <br>
 
3 = Small Memory Dump <br>
 
7 = Automatic Memory Dump <br>
 
7 = Automatic Memory Dump <br>
 +
Set-ItemProperty –Path HKLM:\System\CurrentControlSet\Control\CrashControl –Name CrashDumpEnabled –value <Dump-Art>
  
  
Zeile 57: Zeile 62:
 
== Dump generieren ==
 
== Dump generieren ==
 
[[Datei:Ilo-nmi.png|800px|right]]<br>
 
[[Datei:Ilo-nmi.png|800px|right]]<br>
 +
[[Datei:02-Huawei.png|800px|right]]<br>
 
*Der Dump wird automatisch beim nächsten Bluescreen erstellt.
 
*Der Dump wird automatisch beim nächsten Bluescreen erstellt.
 
*Dies kann mittels einem ''NMI'' auch forciert ausgeführt werden. (Siehe Bild)
 
*Dies kann mittels einem ''NMI'' auch forciert ausgeführt werden. (Siehe Bild)
Zeile 65: Zeile 71:
  
 
''Quelle: ''
 
''Quelle: ''
 +
*''https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/kernel-mode-dump-files''
 
*''https://blogs.msdn.microsoft.com/clustering/2015/05/18/windows-server-2016-failover-cluster-troubleshooting-enhancements-active-dump/''
 
*''https://blogs.msdn.microsoft.com/clustering/2015/05/18/windows-server-2016-failover-cluster-troubleshooting-enhancements-active-dump/''
 
*''https://blogs.technet.microsoft.com/askcore/2012/09/12/windows-8-and-windows-server-2012-automatic-memory-dump/''
 
*''https://blogs.technet.microsoft.com/askcore/2012/09/12/windows-8-and-windows-server-2012-automatic-memory-dump/''

Aktuelle Version vom 2. Oktober 2018, 16:56 Uhr

Beispiel: Host mit 16GB Memory

Bevor die Memory Dumps aktiviert werden bzw. die Registry-Setting geändert werden, empfehle ich die aktuellen Settings zu merken.

Location des Dumps ändern (Beispiel Laufwerk X:)

Set-ItemProperty –Path HKLM:\System\CurrentControlSet\Control\CrashControl –Name DumpFile –value X:\MEMORY.DMP

Aktivierung Dump für NMI-Crash (Dient zur Reproduzierung)

Set-ItemProperty –Path HKLM:\System\CurrentControlSet\Control\CrashControl –Name NMICrashDump –Value 1


Dump Konfigurationen/Arten

Es gibt folgende Dump-Konfigurationen (Registry-Key: HKLM:\System\CurrentControlSet\Control\CrashControl):
0 = No Dump
1 = Complete Memory Dump
2 = Kernel Memory Dump
3 = Small Memory Dump
7 = Automatic Memory Dump

Set-ItemProperty –Path HKLM:\System\CurrentControlSet\Control\CrashControl –Name CrashDumpEnabled –value <Dump-Art>


Active Memory Dump

Mit folgenden Befehlen kann der "Active Memory Dump" aktiviert werden. Nach dem ausführen des Befehls muss das System neugestartet werden.

Set-ItemProperty –Path HKLM:\System\CurrentControlSet\Control\CrashControl –Name CrashDumpEnabled –value 1
Set-ItemProperty –Path HKLM:\System\CurrentControlSet\Control\CrashControl –Name FilterPages –value 1


Full Memory Dump

Vorbereitung

Damit ein Full Memory Dump geschrieben werden kann müssen folgende zwei Punkte im Vorhinein gemacht/abgeklärt werden:

  • Genug Speicherplatz bei der Dump-Location (Default Laufwerk C:) freilassen -> Memory * 2 + 256MB
  • Virtual Memory auf fixed setzen -> Memory * 2 + 256MB


Mit folgenden Befehlen kann der "Full Memory Dump" aktiviert werden und das Virtual Memory auf fixed gesetzt werden Nach dem ausführen des Befehls muss das System neugestartet werden.

# Set Registry-Settings
Set-ItemProperty –Path HKLM:\System\CurrentControlSet\Control\CrashControl –Name CrashDumpEnabled –value 1
Set-ItemProperty –Path HKLM:\System\CurrentControlSet\Control\CrashControl –Name NMICrashDump –value 1
Remove-ItemProperty –Path HKLM:\System\CurrentControlSet\Control\CrashControl –Name FilterPages
 
# Check Total Memory Size for virtual Memory
$MemoryInGB = [math]::Round((Get-Ciminstance Win32_OperatingSystem).TotalVisibleMemorySize/1mb,2)
$MemoryInMB = $MemoryInGB * 1024
 
# Set virtual Memory to fixed and with the right Value (Memory * 2 + 256MB)
$computersys = Get-WmiObject Win32_ComputerSystem -EnableAllPrivileges;
$computersys.AutomaticManagedPagefile = $False;
$computersys.Put();
$pagefile = Get-WmiObject -Query "Select * From Win32_PageFileSetting Where Name like '%pagefile.sys'";
$pagefile.InitialSize = ($MemoryInMB + 256);
$pagefile.MaximumSize = ($MemoryInMB + 256);
$pagefile.Put();
 
# Message
Write-Host "To apply the settings reboot the system" -ForegroundColor Green


Dump generieren

Ilo-nmi.png

02-Huawei.png

  • Der Dump wird automatisch beim nächsten Bluescreen erstellt.
  • Dies kann mittels einem NMI auch forciert ausgeführt werden. (Siehe Bild)
  • Eine weitere Möglichkeit wäre die NotMyFault64.exe von den Sysinternals-Tools auf das Zielsystem zu kopieren und diese auszuführen. Ähnlich wie NMI führt dies ebenfalls einen "Bluescreen" aus.



Quelle: