¿Cuánto tiempo poner a cero un disco con dd? [cerrado]

14

¿Cuánto tiempo tomará llenar cero 1TB (usando dd dev / zero)?

De hecho, estoy haciendo dos unidades de 500G simultáneamente si es importante.

Miles Marley
fuente
3
Entonces, dinos, ¿cuánto tiempo se tardó en dd las unidades con ceros?
Rolnik
1
Mi sata WD de 1Tb (5400 rpm) tarda unos 240 minutos, pero es antigua y tiene sectores reasignados. Por cierto, no es tan diferente del mismo tiempo que los informes inteligentes como el tiempo para esperar que una autoevaluación extendida dure (255 minutos)
barrymac
2
Agregando otro punto de datos: simplemente ejecuté dd if=/dev/zero of=/dev/sdX bs=8Mdos unidades Seagate ST4000DM000 4 TB nuevas a través de puertos SATA-300 simultáneamente (creo que era más o menos perfectamente paralelizable: el uso de la CPU era constante a ~ 20% para el primer ddproceso antes de que se iniciara el segundo , y luego ambos tomaron ~ 20% cada uno). El primer disco terminó en 8h50min (530 min), y el segundo en 8h30min (510 min). Asciende a una velocidad de escritura de ~ 130 MB / s por unidad, lo que no es tan extraño teniendo en cuenta la entrada monótona. El hardware era de 2009 (CPU: C2D E8400; chipset: Intel P43 / ICH10).
Daniel Andersson

Respuestas:

9

Depende de muchos factores, incluidos, entre otros:

  • Velocidad de disco (RPM)
  • Disco caché incorporado
  • Número de platos y si puede escribir en múltiples platos simultáneamente
  • Interfaz de disco (SATA / SCSI, etc.)
  • Rendimiento del controlador de interfaz
  • Configuración de las unidades (por ejemplo, canales separados o el mismo canal)

Además, aunque poner a cero una unidad es una tarea simple para la CPU y la RAM, aún puede haber un efecto de:

  • Rendimiento de la CPU
  • RAM disponible
  • Velocidad de RAM
  • Otras tareas que se realizan al mismo tiempo
  • Configuraciones de administración de energía

Suponiendo que una computadora bastante reciente con unidades de grado medio, en un disco de arranque de Linux mínimo ejecutando SOLO la operación de puesta a cero (sin interfaz gráfica de usuario, Internet, etc.) cargada por completo en la RAM, podría durar de 2 a 12 horas. Si tuviera que arrojar un solo número, diría que más cerca de las 3 horas y media, pero nuevamente, no hay suficiente información para obtener una buena estimación aparte de hacerlo realmente.

Si tiene más de 1 GB de espacio libre, puede intentar montar la unidad y ejecutarla dd if=/dev/zero bs=512 count=2048 of=/tmp/tempzeroo algún otro archivo. Si sabe más sobre el tamaño de bloque óptimo para la escritura más rápida en su unidad, puede usarlo para el valor bs (en kilobytes) y establecer el recuento en lo que sea que le proporcione el tamaño de archivo que desea. Luego puede usar eso para obtener una mejor estimación sin perder datos. Simplemente creará un archivo grande que contiene ceros.

TuxRug
fuente
3
En mi experiencia con los discos duros de la última década, bs = 1M es una gran mejora con respecto a bs = 512 y es lo suficientemente bueno como para usarlo por defecto sin preocuparse demasiado por encontrar el óptimo.
Crazyscot
@crazyscot sí, hay una gran diferencia con bs = 1M para anular el terrible defecto de bs = 512. También ddrescue (verifica cómo configurar el tamaño del bloque en él), da una barra de porcentaje / progreso.
barlop
2

Hice un dd con datos aleatorios en un disco de 750GB. Creo que tomó alrededor de 20 horas. Lo que realmente apestaba al respecto es que tuve que hacer eso cuatro veces para una matriz RAID de cuatro discos. Creo que el cuello de botella es la velocidad de escritura de sus unidades. Estás siendo inteligente para hacerlo en las unidades en paralelo.

Rolnik
fuente
2
Es probable que gran parte de su problema de rendimiento haya utilizado números aleatorios. / dev / urandom o cualquier otra fuente se esforzarán mucho por generar números verdaderamente aleatorios, reduciendo así su rendimiento. Algo como / dev / zero no tendrá ese problema.
Sam Bisbee
¿Existe algún riesgo de que 1 TB de ceros se comprima en algún lugar de la tubería hasta el almacenamiento y sesgue los resultados? No me refiero a realmente comprimido en el disco, sino en tránsito como una optimización
pez globo
2

Con una partición de +100 GB, Acer Aspire 5750G, disco duro externo sata, usb 2, 5400 rpm:

xxxx@acer-ubuntu:~$ sudo dd if=/dev/zero of=/dev/sdb2 bs=8M
[sudo] password for xxxx: 
dd: writing `/dev/sdb2': No space left on device
12500+0 records in
12499+0 records out
104856551424 bytes (105 GB) copied, 2846.87 s, 36.8 MB/s

y

xxxx@acer-ubuntu:~$ sudo dd if=/dev/zero of=/dev/sdb1 bs=8M
[sudo] password for xxxx: 
dd: writing `/dev/sdb1': No space left on device
6579+0 records in
6578+0 records out
55183409152 bytes (55 GB) copied, 1497.23 s, 36.9 MB/s
hsmit
fuente
1

Supongo, pero supongo que dependería del controlador de la unidad, el controlador de la placa base y qué más está absorbiendo CPU / IO.

Mi conjetura, en el orden de hora u horas. Los días parecen largos. Dependiendo de cómo esté configurada su máquina, ejecutar ambos al mismo tiempo puede en realidad ralentizar las cosas si crea contención para el controlador de la unidad. Aunque esté bombeando ceros, nada en su unidad lo sabe y necesita escribir cada byte.

Rich Homolka
fuente
1

Si solo está borrando las unidades, una gran herramienta para usar para el rendimiento paralelo es DBAN en modo de borrado simple. Está disponible como ISO y básicamente hace el dd if=/dev/zerocomando por usted en las unidades que selecciona.

wajeemba
fuente
0

Debería tomar de 2 a 5 horas. Su cuello de botella es el disco, no la RAM, la CPU, los cables o la configuración del controlador. A menos que tenga una computadora muy antigua, como un Pentium original, su CPU y memoria son mucho más rápidas que la velocidad del eje del disco duro, al igual que sus cables SATA. La caché ni siquiera entra en juego porque está poniendo a cero la unidad (a menos que tenga 1 TB de caché).

Jordán
fuente