dd if=/dev/zero of=/mnt/data/testfile bs=1

dd if=/dev/zero of=/mnt/data/testfile bs=1

Estoy probando volúmenes de EBS, tratando de descubrir cómo alcanzar la velocidad anunciada. Amazon dice que los volúmenes io1 pueden alcanzar 1000 MBps o 64 000 IOPS a 16K. No veo nada superior a 600 MBps. Esta es una instancia m5n.2xlarge (con tarjeta Nitro) con un volumen aprovisionado para 1280 GB y 64000 IOPS.

Cuando escribo ceros con dd, iostatmuestra una utilización constante del 100%.

Device:         rrqm/s   wrqm/s     r/s     w/s    rMB/s    wMB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
nvme1n1           0.00     0.00    0.00 2284.00     0.00   571.00   512.00    15.36    7.19    0.00    7.19   0.44 100.00

Intenté usar el sistema de archivos XFS en una partición alineada de manera óptima con parted. También intenté escribir dd directamente en el dispositivo de bloque nvme1n1. El rendimiento es casi el mismo en ambos sentidos.

Para esta prueba, estoy escribiendo con dd usando un tamaño de bloque de 1 MB:

# dd if=/dev/zero of=/mnt/data/testfile bs=1M

Lo que no entiendo es por qué obtengo casi el mismo resultado si escribo bloques de 4K:

Device:         rrqm/s   wrqm/s     r/s     w/s    rMB/s    wMB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
nvme1n1           0.00     0.00    0.00 2284.00     0.00   571.00   512.00    15.02    7.02    0.00    7.02   0.44 100.00

Respuesta1

dd if=/dev/zero of=/mnt/data/testfile bs=1

Ha pasado un tiempo desde que usé Linux, pero estoy 99% seguro de que el argumento bs está en bytes. Entonces creo que estás enviando un tamaño de bloque de 1 byte, en lugar de 1 MB.

Pruebe esto en su lugar:

dd if=/dev/zero of=/mnt/data/testfile bs=1M

información relacionada