sábado, 29 de marzo de 2008

Memtest86 y Memtest86+

Un test de memoria RAM es el primer paso en la validación de un equipo informático, una memoria con errores puede producir desde fallos en el arranque , pasando por cuelgues o reinicios hasta una corrupción silenciosa de los datos de usuario. Memtest es el primer programa que debe utilizar un SAT digno de su nombre.
Memtest86+ 2.01 a la izquierda, Memtest86 3.4 a la derecha.

Memtest86+ deriva del original Memtest86, principalmente añade soporte para los últimos chipsets. Suele reconocer más hardware que Memtest86 y soluciona algunos bugs, pero recomiendo tener a mano los dos, pues a veces cuando uno falla el otro funciona correctamente.

En este artículo me centraré en Memtest86+. No necesitamos sistema operativo, ni siquiera un disco duro para usar este software ya que viene pre compilado con cuatro posibilidades:

  • ISO arrancable (Imagen CD).
  • Binario arrancable.
  • Pre compilado arrancable para memoria USB.
  • Pre compilado arrancable para floppy.

Los tests:

La metodología de un buen test de memoria es la siguiente: escribir todas las direcciones de memoria con patrones generados con un algoritmo específico y volver a leerlos para comprobar la coherencia de los datos.

En el algoritmo usado está la diferencia entre los varios programas disponibles, y el más eficaz es Memtest86+, que se compone de diez tests individuales:

  • Test 0: [Address test, walking ones, no cache]. Test de todos los bits direccionables en todos los bancos de memoria usando un patrón de acceso "walking ones".
  • Test 1: [Address test, own address]. Cada dirección es escrita con el valor de su propia dirección y luego es probada para detectar diferencias. Este test es complementario y más estricto que el Test 0 y debería detectar todos los errores de direccionamiento.
  • Test 2: [Moving inversions, ones & zeros]. Este test utiliza el algoritmo Moving inversions con patrones de unos y ceros. Es un test rápido que solamente da errores en subsistemas de memoria muy dañados.
  • Test 3: [Moving inversions, 8 bit pattern]. Utiliza el algoritmo Moving Inversions diseñado para detectar fallos producidos por interferencia con las células de memoria adyacentes.
  • Test 4: [Moving inversions, random pattern]. Se utiliza el mismo algoritmo del paso 3 pero el patrón es un número aleatorio (más bien pseudo aleatorio) y su complemento. Es un test muy efectivo para detectar errores de datos, utilizando 60 patrones aleatorios cambiando en cada pasada del test. Por ello múltiples pasadas aumentan la eficacia.
  • Test 5: [Block move, 64 moves]. Este test prueba la memoria utilizando la instrucción [movsl] y está basado en un antiguo test llamado burnBX de Robert Redelmeier. Experimentalmente es de los test que revelan errores más sutiles.
  • Test 6: [Moving inversions, 32 bit pattern]. Es un test bastante lento pero muy efectivo para detectar errores de datos, ya que hace 32 pasadas para probar todos los patrones.
  • Test 7: [Random number sequence]. Se escribe una serie de números aleatorios en memoria. Es comprobado y complementado y vuelto a comprobar.
  • Test 8: [Modulo 20, ones&zeros]. Utiliza el algoritmo Modulo-X, diseñado para evitar interferencia del subsistema de caché que podrían enmascaras algunos errores en tests anteriores. Utiliza patrones de unos y ceros.
  • Test 9: [Bit fade test, 90 min, 2 patterns]. Se inicializa toda la RAM con un patrón y se deja inactiva 90 minutos, entonces se examina en busca de alguna variación. Se pasa dos veces, una con ceros y otra con unos. Dura 3 horas y no forma parte del test estándar, hay que seleccionarlo a mano en el menú.

Una "pasada" consiste en los nueve tests del 0 al 8 y tras acabar vuelve a empezar en un bucle sin fin. Cuanto más tiempo, mayor seguridad. El test 9 se debe seleccionar manualmente, no forma parte de la suite estándar.

Los tests 4 y 7, al utilizar números aleatorios, no solo chequean RAM sino también el procesador. por lo que a veces detectan errores de CPU y no de memoria. Ambos tests además, y dada su naturaleza, aumentan su poder de detección con múltiples pasadas.

Duración del test:

Memtest86+ 2.00 en acción.

Memtest86 y Memtest86+ son tests infinitos, tras una pasada comienza la siguiente ... Somos nosotros y nuestro nivel de exigencia o tiempo lo que marca la duración del test.

Por otro lado recordar que los módulos DIMM son componentes electrónicos sujetos a perturbaciones de diversos tipos:

  • Fluctuaciones térmicas.
  • Interferencia mutua o externa.
  • Anomalías de alimentación.
  • Soft errors.

En cuanto a la temperatura, he notado en varios sistemas fallos de memoria en torno a la 3ª o 4ª pasada debido a sobrecalentamiento en los DIMMs. Recomiendo una adecuada ventilación en esos casos, incluso si es necesario activa.

Interferencia. Hoy día es anecdótico, pero recuerdo un equipo K6 en que tuve que apantallar los módulos para conseguir los 112 MHz del bus de memoria.

Anomalías de alimentación. Por causa externa (red eléctrica) o interna (fuente de alimentación) se dan algunas veces falsos positivos. Por ello siempre es vital monitorizar los voltajes de la F/A durante los stress tests.

Soft errors. A muchos les sonará extraño, pero en sistemas informáticos hay errores provocados por partículas extraterrestres incidentes (rayos cósmicos) o por desintegraciones radioactivas en los encapsulados de los chips, incluso el metal de los chasis. No es negligible. Recomiendo la excelente y muy técnica lectura del original de IBM Terrestrial cosmic rays and soft errors Vol. 40, No. 1, 1996 o el más reciente IBM Jornal of R&D Vol. 52 No. 3 y también Soft errors' impact on system reliability.

Conclusiones:

Estamos ante el mejor software para detectar problemas con los módulos de memoria, y no puede faltar en el arsenal de cualquier entusiasta del hardware.

Es muy útil en overclocking para validar la estabilidad de nuestro sistema y evitarnos sorpresas desagradables al cargar el sistema operativo.

Quiero añadir que Memtest debe ejecutarse en condiciones reales, es decir simulando el entorno real de trabajo del sistema. No es extraño ver sistemas que no dan errores "al aire" y una vez montados en un chasis mal ventilado o con una fuente de alimentación insuficiente dan problemas.

Recomiendo a los lectores avezados se den un paseo por las páginas siguientes:

Otros análisis de Memtest en este mismo Blog:

Test de memoria para Windows:

Si consideras útil el contenido de este Blog, ayuda a mantenerlo ojeando algunas de las ofertas que consideres interesantes de nuestros anunciantes.

16 comentarios:

  1. Hacía unos cuantos años usaba el Gold memory, pero me pasé al Memtest por su exactitud a la hora de detectar posibles errores de memoria. Te puedo asegurar que es una herramienta casi infalible y ayuda un montón a la hora de detectar si tu overclock es estable (en cuestion de memorias).

    ResponderEliminar
  2. Espectacular "review" del Memtest, por fin alguien me he enterado que hace cada test jajaja, enhorabuena.

    ResponderEliminar
  3. Znks por el análisis del programa, muy completo, ahora ya sé que es lo que hace, antes solo le daba al botón analizar sin más ;-)

    ResponderEliminar
  4. Jajajaja, alguna vez usaste el MemTest amigo "raiden"?...

    ResponderEliminar
  5. Muy buenos programas de testeo, imprescindibles en tu lista de herramientas y para hacer buenos overclocking de memorias. Saludos

    ResponderEliminar
  6. Memtest, además de ser un excelente test de memoria se ejecuta fuera del sistema operativo lo que le da gran versatilidad.

    Saludos.

    ResponderEliminar
  7. Me ha sido de gran ayuda.
    Te agradezco la extensa explicación. Ahora mismo tengo una PC testeando y necesitaba saber en qué consistía y cuantos test realizaría.
    Gracias.

    ResponderEliminar
  8. Tengo un problema, se lo explico:
    He utilizado el Memtest86+ v2.11 porque veia que mi ordenador le costaba realizar aplicaciones que antes hacia sin ningun problema.
    Tengo dos memorias RAM DDR402 de 512 MB y he realizado varias pasadas:

    1º A una targeta sola
    2º A la otra targeta sola
    3º las dos tagetas juntas a la vez

    y no me ha dado ningun error en ningun caso anterior. Pero queria realizar mas test para verificarlo y en el menu seleccione:
    (1) test selection
    (3) Memory sizing
    (2) Bios-All
    Y me aparecieron muchas lineas rojas ¿que quieres decir eso, que las 2 RAM las tengo mal?

    ResponderEliminar
  9. Luis25,

    Te recomiendo que consigas desde la página de Memtest la última versión del programa y la ejecutes durante una noche.

    Sobre el tipo de test que has pasado, en el que te ha dado errores, es normal ya que has obligado a Memtest a chequear toda la RAM, incluso las zonas reservadas.

    Por lo que dices, probablemente no sea un fallo de RAM.

    Un saludo,

    Carlos Yus

    ResponderEliminar
  10. Amigo. ¿Qué será que cuando mle paso el memtest86+, todos los reglones se ponen en rojo? En dónde dice errors (al lado de pass), ya va como por 3 millones. ¿Será normal eso, o es que la memoria está difunta? Gracias.

    ResponderEliminar
  11. Obviamente tu memoria falla.

    Si un módulo está realmente mal no es extrañe que de 3 millones de errores en unos minutos.

    Un saludo,

    Carlos Yus

    ResponderEliminar
  12. Hola, la verdad muy bueno el post, te hago una pregunta... paso a contar lo previo a la pregunta... empeze a tener problemas en windows con sus queridos pantallazos azules, no di mucha importancia ya que suelo usar mas linux mint, ahora estos dias tuve unos cuelgues fantasmagoricos en linux, cosa que me preocupo bastante, hago la comprobación con el memtest86+ y el el test #7 se queda, es decir, empiezan los errores y sus queridas líneas rojas, ni lo dude, necesito utilizar el equipo, asi que compré una nueva marca kington, y paso lo mismo que con la memoria anterior.
    la pregunta seria, tengo tanta suerte que me traje una mmoria defectuosa? o el problema viene por otro lado?

    gracias por tu tiempo!
    saludos!

    ResponderEliminar
  13. hola.

    gracias por tu extensa explicacion... fijate que me paso algo muy muy muy curioso, del tiempo que llevo formateando equipos no me habia sucedido, un amigo llego y me dijo que si le daba una checada a su maquina, que su hija baja cuanta cosa de bichos de paginas no oficiales y el equipo cuando se encendia marcaba errores y se pasmaba mucho asu vez no me dejaba entrar al modo prueba de errores y a veces se congelaba o se quedaba colgada y no me reconia el mouse usb... le dije que lo mejor era formatear.. estoy formateando y observo que me marca error en la instalacion justo despues de formatear y expandir los archivos de instalacion al iniciar la instalacion me marcaba error y error, la primera vez con win 7 me salio la pantalla azul y cuando kise reinstalar me decia que habia un error en la instalacion que se reiniciaria y debia reinstalar windows 7, lo hice y lo mismo era como un bucle sin fin... probe con xp, y lo mismo me marco erro en un dll no recuerdo bien pero lo reintentaba y los mismo.. le resetie la bios y como que la instalacion avanzo un poco mas pero ahora me salian pantallazos azules... del bad pool header algo asi decia...formateando rapido, lento, etc. y lo mismo... bueno a la mano tenia otro disco duro y eso, le cambie el disco duro y me hizo por fin la instalacion del xp no sin antes indicarme que existia una firma de software sin comprobar para el hardware Battery o Energy.. algo asi... bueno le dije que su disco duro estaba mal, leyendo por ahi dicen que esto o es memoria ram, charola de disco o disco duro... bueno hoy llegue con otra memoria ram y mi sorpresa es que si pude instalar el win 7 en el disco duro supuestamente "dañado" ahora le dije a mi cliente que era su memoria ram... instalo el win 7 y todo funciono ok... pero se me ocurrio regresarle la memoria supuestamente dañada a la compu... y esta funciona bien... obvio hice la instalacion con otra memoria y ahora le regreso la que no me dejaba instalar y resulta que funciona bien.. la tengo con el memtest y sin marcar fallo de momento lleva poco mas de 2 horas corriendo... me saca de onda pero yo ya le recomende que se compre una nueva ram... que la que tiene funciona bien pero no tarda en generarle problemas... sin embargo no tengo 100% seguridad si es disco o ram.. sin mas gracias...

    ResponderEliminar
  14. je la ya temino el memtest y sin error... estoy hasta sospechando de algun virus en la bios que al resetear se borro... he escuchado un poco de eso... pero bueno... sin mas gracias... y me sirvio mucho tu post para entender un poco mas el memtest que no le entiendia mucho...

    ResponderEliminar
  15. Hola:
    Tengo la siguiente duda expuesta en un foro, pero no encuentro respuesta a ella.
    A ver si aqui pueden orientarme:

    Buenas, expongo mi caso:
    Tengo un portatil ACER con un par de memorias PC2 4200s, de 512Kb cada una.
    Estoy analizandolas con diversas versiones del Memtest86 (con y sin +), y me dá resultados diferentes.

    Con estas versiones no detecta error alguno:
    Memtest86+ v.4.20
    Memtest86 v.4.3.6

    Pero con otros Memtest me arroja unos errores muy raros.
    Memtest86+ v.1.65
    Memtest86+ v.1.70

    Los errores son siempre parecidos, solo cambia la direccion dependiendo de la pasada "pass" que sea.
    En "FAILING ADDRESS, siempre pone 00000000000
    En GOOD, es donde vá cambiando la direccion (20202020 / 161aa32c / 1db667b1 ... )
    En BAD, siempre 00000000
    En ERR-BITS, copia la direccion de Good.
    En COUNT, siempre 1


    Podeis decirme a que es esto posible, o que significan estos errores?
    Como puedo asegurarme de que mi memoria esté bien o no???

    Gracias


    EDITO, para decir que he probado a poner una sola memoria en un solo slot, y las dos arrojan errores con las citadas versiones.

    ResponderEliminar
  16. Anónimo,

    Leyendo atentamente tu comentario deduzco que NO fallan tus módulos de memoria.

    No es nada extraño que hayan incompatibilidades entre mucho hardware y versiones antiguas de Memtest y Memtest+. Siempre debes utilizar la última versión.

    En cualquier caso, y para mayor seguridad deberías ejecutar en tu máquina otros tests, no solo de memoria sino más generales, te propongo dos:

    Test de memoria en entorno Windows:

    http://satsoftware.blogspot.com.es/2008/04/memtest-35-para-windows.html

    Lanza una sola instancia y ajusta el tamaño de RAM a comprobar de 512 MB a 768 MB en función de la RAM disponible en tu sistema (solo 1 GB físico).

    Test de cálculo complejo e intensivo (también prueba la RAM con los ajustes adecuados):

    http://satsoftware.blogspot.com.es/2011/03/test-de-procesador-prime95-265-x64.html

    Prime95 lo ajustaría en modo Blend con 512 - 768 MB de test. Si seleccionas demasiada memoria y no está libre no probarás nada ya que Windows paginará a disco duro.

    De todos modos tengo artículos más recientes y actualizados sobre Memtest en este mismo Blog.

    Espero haberte ayudado,

    Saludos.

    Carlos Yus Valero

    ResponderEliminar