¿Cómo configurar mi máquina para obtener un Dump de memoria?

En un porcentaje elevado de los casos de soporte es necesaria la obtención, o el análisis, de un volcado de memoria de la máquina para llegar a conocer quien o quienes pueden ser los responsables de una caída inesperada de la máquina, un bloqueo o una degradación en su rendimiento.

Lo mas conveniente es tener el servidor configurado de forma que, en caso de caída inesperada, se genere un volcado automático y este pueda ser analizado con posterioridad.

Para configurar la máquina habremos de seguir los siguientes pasos:

Cómo seleccionar opciones de volcado de memoria

Se pueden generar tres tipos de archivos de volcado de memoria. Seleccione uno antes de desencadenar el archivo de volcado manualmente. Para ello, siga estos pasos:

1. Haga clic con el botón secundario del ratón en Mi PC y, a continuación, haga clic en Propiedades.

2. En la ficha Opciones avanzadas, haga clic en el botón Configuración de Inicio y recuperación.

clip_image002

3. Haga clic en Escribir información de depuración y, a continuación, seleccione Volcado de memoria completa o la opción que deseemos configurar.

clip_image004

También podemos configurar aquí donde quedará guardado el fichero definitivo.

Hemos de tener en cuenta que se generará un fichero temporal en la unidad de sistema, y durante el inicio de la máquina, tras el volcado, este fichero pasará a la ubicación indicada en esta opción, por lo que deberemos de tenerlo en cuenta a la hora de administrar el espacio en disco.

Por esto es muy importante tener al menos un archivo de paginación con el tamaño de la memoria física en la unidad de sistema, si se encuentra en otra unidad no podrá generar el temporal no obteniendo el volcado.

Estas mismas opciones están en el registro, en la clave HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CrashControl

Con los valores:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\CrashControl
CrashDumpEnabled REG_DWORD 0x0 = None
CrashDumpEnabled REG_DWORD 0x1 = Complete memory dump
CrashDumpEnabled REG_DWORD 0x2 = Kernel memory dump
CrashDumpEnabled REG_DWORD 0x3 = Small memory dump (64KB)

Algunos valores adicionales CrashControl:

0x0 = Disabled
0x1 = Enabled
AutoReboot REG_DWORD 0x1
DumpFile REG_EXPAND_SZ %SystemRoot%\Memory.dmp
LogEvent REG_DWORD 0x1
MinidumpDir REG_EXPAND_SZ %SystemRoot%\Minidump
Overwrite REG_DWORD 0x1
SendAlert REG_DWORD 0x1

Se necesita un reinicio para habilitar las opciones configuradas con antelación.

Obtenido de:

307973 How to configure system failure and recovery options in Windows

https://support.microsoft.com/default.aspx?scid=kb;EN-US;307973

254649 Overview of memory dump file options for Windows Server 2003, Windows XP, and Windows 2000

https://support.microsoft.com/default.aspx?scid=kb;EN-US;254649

274598 Complete memory dumps are not available on computers that have 2 or more gigabytes of RAM

https://support.microsoft.com/default.aspx?scid=kb;EN-US;274598

En los casos en que se queda la máquina bloqueada se puede generar un volcado mediante el teclado que nos permita analizar que estaba haciendo en el momento de cuelgue y cuál puede ser el causante.

También se puede emplear para comprobar si el volcado se realiza correctamente en caso de no estar seguros que este correctamente configurado, la forma de configurarlo está reflejado en el artículo siguiente.

Habilitar el Scroll Lock dump –

Para lanzar el volcado de memoria se deberá pulsar la siguiente combinación de teclas:

CTRL+SCROLL LOCK+SCROLL LOCK

Esta opción se habilita en un equipo que utiliza un teclado PS/2, siguiendo estos pasos:

1.Inicie el Editor del Registro.

2.Busque la siguiente sub clave del Registro:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters

3.En el menú Edición, haga clic en Agregar valor y agregue la entrada siguiente del Registro:

Nombre: CrashOnCtrlScroll
Tipo de datos: REG_DWORD
Valor: 1

4.Cierre el Editor del Registro y reinicie el equipo

Para el caso de teclado USB se precisa una versión especial del driver Kbdhid.sys, el cual solo está desarrollado para sistemas servidor y disponible como hotfix.

En el momento que se pulse la combinación aparecerá nuestra querida pantalla azul con el siguiente mensaje:

*** STOP: 0x000000E2 (0x00000000,0x00000000,0x00000000,0x00000000)
The end-user manually generated the crashdump.

Habrá que esperar a que el contador llegue a cien y se reinicie la maquina (en caso de estar seleccionado el reinicio en las opciones del volcado) para que se genere el volcado complete de memoria al disco.

244139 Windows feature lets you generate a memory dump file by using the keyboard

https://support.microsoft.com/default.aspx?scid=kb;EN-US;244139

Cuando no se genera el volcado a pesar de estar la máquina correctamente configurada es muy importante revisar que no tenga configurado o habilitado opciones como Automatic System Restart (ASR) de Compact o elementos similares de otros proveedores, estos se suelen administrar desde las opciones de la BIOS de la máquina.

También se tiene que cumplir la siguiente condición en cuanto a la configuración del disco y el archivo de paginación:

Si se selecciona la opción volcado de memoria completa, se debe tener en el volumen de arranque del sistema un archivo de paginación que sea suficiente para contener toda la memoria física RAM mas 1MB (megabyte). Por defecto el volcado de memoria completa se escribe en el fichero %SystemRoot%\Memory.dmp.

Esto es debido a que en la partición del sistema se aloja el fichero temporal donde se vuelca la memoria hasta el inicio de la máquina y copiado a la unidad seleccionada en las propiedades de la máquina.

Se pueden realizar las mismas opciones para las máquinas virtuales, en este articulo se especifica cómo hacerlo para Virtual Server 2005.

928839 How to use the keyboard to generate a memory dump file on a Virtual Server 2005 guest computer

https://support.microsoft.com/default.aspx?scid=kb;EN-US;928839

Toda esta información aplica a las versiones de W2000, Windows 2003 y Windows 2008 Server.

Espero que esta información facilite la obtención de datos para poder solucionar situaciones que, en algunos casos, resultan críticas para una empresa.

Raúl del Moral Guirado

Técnico de Soporte Premier