Probar la memoria RAM en Linux

Probar la memoria RAM en Linux

Probar la memoria RAM en Linux se puede volver necesario antes o durante el despliegue de un servicio crítico, o si vamos a procesar grandes vólumenes de datos, o si a la máquina la vamos a destinar como una estación de trabajo de edición multimedia.

En fín, la comprobación de la memoria RAM podemos ejecutarla cuando lo consideremos necesarios en cualquier equipo. Para desarrollar este diagnostico, podemos acudir a los siguientes comandos:

Memtest86+ : herramienta gratuita y de código abierto esencial para 
diagnosticar errores en la memoria RAM. Se debe ejecutar antes de que inicie 
el sistema.
memtester : A diferencia de Memtest86+, funciona desde el sistema operativo en 
ejecución, escribiendo patrones de datos en la RAM para identificar errores.
stress-ng : Mientras que un diagnóstico como Memtest86+ es un examen de precisión 
(revisa cada celda una por una), una prueba de estrés es una prueba de resistencia 
(mira si la memoria aguanta la presión).

Probar la memoria RAM en Linux con el comando memtester se hace así:

1- Primero validamos la cantidad de memoria RAM libre que tenemos en el momento

free -h

2- Usando el valor de la cantidad libre, menos un 30% de ese valor, aplicamos el diagnostico (que para este caso me da 1,4 GB ó 1400 Megabytes):

memtester 1200M 1 

1200M es el espacio libre (incluyendo el 30%) donde memtester debe realizar el diagnostico, y 1 es la cantidad de intentos.

Probar la memoria RAM en Linux

La idea es realizar el diagnostico de la memoria RAM tan pronto inicie el sistema, para que tengamos más espacio libre al cual hacerle la prueba. Sea como sea, el examen de la RAM hecho con memtester no reemplaza el diagnostico con Memtest86+, pues éste último es más profundo.

Probar la memoria RAM en Linux bajo estrés


Este comando es ideal para ver si el sistema se congela bajo carga:

stress-ng --vm 2 --vm-bytes 80% --timeout 5m --metrics-brief
  • –vm 2: Lanza 2 procesos trabajadores (útil para CPUs multinúcleo).
  • –vm-bytes 80%: Usa el 80% de tu RAM total.
  • –timeout 5m: Se detiene automáticamente en 5 minutos.
  • –metrics-brief: Al final te muestra cuántas operaciones logró hacer.

Si queremos forzar a la RAM a trabajar duro moviendo datos:

stress-ng --vm 4 --vm-bytes 2G --vm-method all --verify -t 1m
  • –vm-method all: Alterna entre diferentes formas de llenar la RAM (ceros, unos, patrones aleatorios).
  • –verify: Este es clave para diagnóstico. Verifica que los datos leídos sean los mismos que se escribieron. Si hay un error de hardware, el programa se detendrá y avisará.

Cómo saber si falló (Resultados)

A diferencia de memtester, que te dice «FAILURE» de forma bonita, stress-ng se manifiesta así:

Mensajes de error en terminal: Verás algo como stress-ng-vm: [ID] verification failed. Esto confirma que tu RAM está «volteando» bits (fallo físico).

El OOM Killer actúa: Si ves que el proceso muere repentinamente con un mensaje de «Killed«, es que intentaste usar más RAM de la que el sistema podía permitir.

Congelamiento total: Si el sistema deja de responder, es probable que la RAM sea inestable a altas frecuencias o voltajes.

Antes de ejecutar la prueba de estrés, te recomiendo abrir otra terminal y ejecuta este comando para ver cómo se va llenando tu memoria mientras la estresas:

watch -n 1 free -h

Para saber la velocidad y el tipo de memoria RAM que tenemos en nuestro sistema (DDR3, DDR4, etc), podemos acudir al comando dmidecode, el cual ya lo tratamos en el artículo sobre diagnostico de hardware en Linux, en el siguiente artículo.

Diagnostico de hardware en Linux

Comparte esto en
Publicado en GNU Linux.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *