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/zerousa una fuente de ceros.of=dd-test.bincrea el archivo de prueba en el directorio actual.bs=1M count=1024escribe 1024 bloques de 1 MiB.conv=fdatasyncsolicita sincronizar los datos escritos antes de queddtermine. Es una extensión de GNUdd[1].status=progressmuestra 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.