Medir la velocidad secuencial de un disco en Linux con dd

·3 min de lectura·

dd copia datos entre una entrada y una salida. Con un archivo de prueba dentro del sistema de archivos que queremos observar, sirve para obtener una medición sencilla del caudal secuencial de escritura o lectura. No sustituye una herramienta de benchmarking: el resultado depende del tamaño de la prueba, las cachés, el sistema de archivos y la carga del equipo [1].

Precaución: estos ejemplos crean un archivo de 1 GiB. Comprueba que la ruta corresponde al volumen que quieres medir y que tiene espacio libre suficiente. No ejecutes pruebas de escritura sobre un dispositivo de bloque que contenga datos.

Preparar una ruta de prueba

Elige una ruta en el volumen que quieras medir. Por ejemplo, para probar el directorio personal:

cd "$HOME"
df -h .

df permite comprobar el espacio disponible en el sistema de archivos actual. Si quieres medir otro volumen, sitúate en una carpeta de ese volumen y confirma la ruta antes de seguir.

Medir escritura secuencial

En Linux con GNU Coreutils, este comando escribe un archivo de 1 GiB formado por ceros y sincroniza sus datos antes de terminar:

dd if=/dev/zero of=dd-test.bin bs=1M count=1024 conv=fdatasync status=progress
  • if=/dev/zero usa una fuente de ceros.
  • of=dd-test.bin crea el archivo de prueba en el directorio actual.
  • bs=1M count=1024 escribe 1024 bloques de 1 MiB.
  • conv=fdatasync solicita sincronizar los datos escritos antes de que dd termine. Es una extensión de GNU dd [1].
  • status=progress muestra el progreso en las versiones de GNU Coreutils que lo admiten.

La última línea informa el volumen transferido y el tiempo empleado; a partir de ambos, dd muestra una tasa aproximada. Espera a que el comando finalice para comparar resultados.

Medir lectura secuencial

Lee el archivo creado y descarta los datos para no generar otra copia:

dd if=dd-test.bin of=/dev/null bs=1M status=progress

Esta lectura puede beneficiarse de la caché del sistema operativo, especialmente si el archivo cabe en memoria o ya se ha leído. Por eso no debe interpretarse automáticamente como la velocidad física del dispositivo [1].

Repetir y comparar

Para comparar dos volúmenes, repite el mismo procedimiento en cada uno y conserva iguales el tamaño del archivo, los parámetros de dd y las condiciones de carga. Haz más de una medición y anota si el archivo se acaba de escribir o ya estaba en caché.

dd mide una transferencia secuencial sencilla. No representa por sí solo el rendimiento aleatorio, la latencia de aplicaciones reales ni el comportamiento de varios procesos concurrentes. La lectura desde /dev/urandom también añade el coste de generar datos aleatorios, por lo que no es una comparación limpia del almacenamiento [1].

Eliminar el archivo de prueba

Cuando termines, confirma que el nombre y la ubicación corresponden al archivo temporal y elimínalo:

rm -- "$HOME/dd-test.bin"

Si guardaste dd-test.bin en otro directorio, ajusta la ruta. Verifica el espacio disponible después de borrarlo.

Fuentes consultadas

  1. GNU Coreutils: documentación del comando dd

dd

¿Te ha resultado útil?

Compártelo con tu red de contactos profesionales.

Comentarios (0)

Sé el primero en comentar.