La velocidad de escritura de la tarjeta SD parece ser 14 veces más lenta que la velocidad de lectura

11

Esta noche estaba escribiendo en una tarjeta SD desde un lector de tarjetas interno Mac Book Air, y el rendimiento reportado fue de 1.4 MB / seg. Luego leí que lo probé en la Raspberry Pi y obtuve 20 MB / seg. ¡Es una carta de clase 6 y ninguna de estas figuras suena realista!

Estoy usando ddpara mis pruebas. Resultados de pruebas idénticas de lectura y escritura en ambas computadoras:

Raspberry Pi: lectura de 20 MB / seg. Escribir 11 MB / seg ...
Aire: Leer 3 MB / seg. Escribir 1.4 MB / seg

Usando estos comandos:

Prueba de escritura:

sudo dd if=/dev/zero of=/dev/mmcblk0p3 bs=1M count=400

Prueba de lectura:

sudo dd of=/dev/null if=/dev/mmcblk0p3 bs=1M count=400

¡Esto indica que la anomalía percibida era, de hecho, un rendimiento pésimo del lector de tarjetas SD integrado Mac Book Air! Hace que la creación de imágenes sea muy lenta.

ScrollerBlaster
fuente
Sandisk afirma que las tarjetas de clase 6 tienen una velocidad de lectura de 20 MBps, aunque Kingston afirma que 15 MBps es la velocidad de lectura para las tarjetas de clase 6. No sé si Mac Book tiene un lector de tarjetas SD integrado o no. Pero para las versiones externas (USB 2.0), la calidad del lector de tarjetas SD (qué chips utilizan, etc.) también es importante para el rendimiento general. Pero la lectura siempre es más rápida con estos dispositivos que la escritura.
ikku
Gracias. Está integrado Muy buen rendimiento de lectura. Muy mal rendimiento de escritura.
ScrollerBlaster

Respuestas:

6

La clasificación de clase de velocidad de la tarjeta SD especifica el rendimiento mínimo de lectura / escritura que la tarjeta debe tener mientras graba video. El número de clase es el límite de velocidad inferior en MB / s que debe obtener al usar la tarjeta.

Tenga en cuenta, sin embargo, que leer desde la tarjeta suele ser mucho más simple (y, por lo tanto, más rápido) que escribir. Esta es la razón por la que la tarjeta de clase 6 habitual tendrá una velocidad de escritura de 6 MB / s por una velocidad de lectura de 15-20 MB / s (pero solo se garantiza 6 MB / s).

La velocidad de lectura / escritura puede estar limitada no solo por una tarjeta sino también por muchos factores diferentes, tanto de hardware como de software. Especialmente puede estar limitado por algunos problemas con el lector / escritor de tarjetas.

Entonces, en su situación, parece que su tarjeta tiene un rendimiento realmente malo en su Mac Book Air mientras que tiene un rendimiento adecuado (y realista) en RaspberryPi. Sin embargo, no podemos estar seguros, ya que probó la velocidad de escritura en Mac Book y la velocidad de lectura en RaspberryPi y, como mencioné anteriormente, no son comparables. También es difícil comentar por qué está obteniendo tales resultados ya que no especificó cómo está probando esas velocidades.

Krzysztof Adamski
fuente
Necesito probar leer y escribir en ambas plataformas. Estoy usandodd
ScrollerBlaster
@ScrollerBlaster: no se puede comparar la velocidad de lectura con la de escritura entre sí. De manera similar, cuando se prueba casi cualquier cosa, una buena regla general es cambiar solo una cosa a la vez. Pero cambió todo (sistema operativo, computadora host, lector de tarjetas), pero una cosa (tarjeta SD) en su configuración, por lo que no le dará resultados significativos.
Krzysztof Adamski
He dicho que compararé lectura frente a escritura en el mismo sistema operativo. ¿Tienes algún problema con ese enfoque?
ScrollerBlaster
@ScrollerBlaster: No, en absoluto. Solo quería ser claro sobre lo que quiero decir al decir que no son comparables en mi respuesta. Recuerde que esta respuesta no es solo para usted sino para todas las demás personas que puedan tener un problema similar en el futuro, por lo que trato de hacer que mi consejo sea lo más genérico posible.
Krzysztof Adamski
Cuando señaló en su publicación que mi prueba no estaba comparando manzanas y naranjas, este era un punto muy válido. En mi primer comentario dije que volvería a hacer la prueba, lo que significa que volvería a leer y escribir en ambas plataformas. A partir de entonces, su posterior consejo para mí fue innecesario. En el futuro, cualquier conclusión sobre Air versus PI aún es prematura. La prueba más relevante será una prueba de lectura vs escritura en el PI, dado que este es un foro de PI. Si tiene ddcomandos para hacer una prueba de escritura segura, ¡los usaré!
ScrollerBlaster
10

Para obtener la mejor velocidad de la ranura SD de su MacBook, debe usar un dispositivo de 'disco sin formato'.

Esta es una tarjeta SanDisk Ultra Class 10:

~/Desktop/rpi $ sudo dd if=2012-12-16-wheezy-raspbian.img of=/dev/disk1 bs=8m
231+1 records in
231+1 records out
1939865600 bytes transferred in 1076.078932 secs (1802717 bytes/sec)

Compare esto con usar en /dev/rdisk1lugar de/dev/disk1

~/Desktop/rpi $ sudo dd if=2012-12-16-wheezy-raspbian.img of=/dev/rdisk1 bs=1m
1850+0 records in
1850+0 records out
1939865600 bytes transferred in 129.712100 secs (14955163 bytes/sec)

1.8MB / s comparado con 14.9MB / s - ¡casi 10 veces la mejora!

Bert
fuente
¿Cuál es la diferencia entre disk y rdisk?
Valentt
"Están más cerca del disco físico que la memoria caché del búfer. Los nodos / dev / disk, por otro lado, son dispositivos especiales de bloque almacenados en el búfer y son utilizados principalmente por el código del sistema de archivos del núcleo". - Consulte la hidutilpágina del manual para obtener más información.
Bert
1
Esto es potencialmente engañoso ya que el tamaño del bloque cambió entre las dos pruebas.
Nick
FWIW: cambié el tamaño del bloque a 1 my el dispositivo / dev / rdisk1 y mi velocidad de escritura pasó de ~ 1.75 MB / seg a ~ 11.4 MB / seg con una tarjeta de clase 10.
Gardner Bickford
Puedo confirmar esto: escribir una imagen para mi tarjeta SD RPi es 20 veces más rápido cuando uso rdisk2. Mantuve el tamaño de bloque constante para esto (4m). Usando / dev / disk2, gdd escribe a 197 kB / s. Usando / dev / rdisk2, escribe a 10.6 MB / s
judepereira
1

También puede usar estos comandos para realizar evaluaciones comparativas sin influencia de la memoria caché que se carga en la RAM:

punto de referencia de velocidad de lectura: $ sudo dd if = / dev / sdX1 of = / dev / zero bs = 1M count = 400 iflag = direct

punto de referencia de velocidad de escritura: $ sudo dd if = / dev / zero of = / dev / sdX1 bs = 1M count = 400 skip = 1000 oflag = direct

Asegúrese de utilizar siempre oflag = direct e iflag = direct cuando realice la prueba de referencia de escritura y lectura, o corre el riesgo de obtener resultados que en realidad son tiempos de escritura y lectura de caché de archivos.

valentt
fuente
0

En mi MBP 2015 con OSX 10.11.5, recibí las siguientes velocidades de escritura mientras usaba dd:

cuando escribe en / dev / disk: 1.80 MB / s cuando escribe en / dev / rdisk: 12.80 MB / s

El p. Austin
fuente