18 votos

¿Cómo puedo acelerar la velocidad de escritura de la tarjeta SD (usando /dev/disk*) en un MacBook Pro?

He estado instalando algunas distribuciones de linux en una tarjeta SD desde mi MacBook, aunque tardan más de una hora en transferir unos cientos de MB (usando dd y /dev/disk1 ).

dd output

Si miras la salida de arriba, ¡está funcionando a aproximadamente 0,31 MB/s! La tarjeta SD es de Clase 10, y mi MacBook Pro es el Intel Core 2 Duo a 2,66 GHz, 4 GB 1067 MHz DDR3, y OS X Lion 10.7.4. Aquí está el informe de hardware para el lector de tarjetas:

Lector de tarjetas SD incorporado:

ID de proveedor: 0x05ac
ID del producto: 0x8403
Revisión: 1.00 Número de serie Número: 9833

Tarjeta SDHC:

Capacidad: 7,97 GB (7.969.177.600 bytes)
Medios extraíbles: Sí BSD Nombre: disk1
Tipo de mapa de partición: MBR (Master Boot Record)
Estado del S.M.A.R.T: No soportado
Volúmenes:

PI:
Capacidad: 7,96 GB (7.964.983.296 bytes)
Sistema de archivos: MS-DOS
Nombre BSD: disk1s1
Contenido: DOS_FAT_32

¿Alguna idea de por qué la transferencia a /dev/disk1 es tan lento y cómo podría acelerarlo?

43voto

APE Puntos 99

Acabo de encontrarme con el mismo problema y parece ser que /dev/disk* es lento porque se almacena en el buffer. Si utiliza el dispositivo rdisk correspondiente (ej: /dev/rdisk1s1 ) deberías obtener la velocidad que esperas. Esto es aparentemente una cosa de BSD.

Ejemplo:

% sudo dd if=pi.bin of=/dev/disk1 bs=1m count=4095
^C408+0 records in
407+0 records out
426770432 bytes transferred in 1393.452305 secs (306268 bytes/sec)

% sudo dd if=pi.bin of=/dev/rdisk1 bs=1m count=4095
4095+0 records in
4095+0 records out
4293918720 bytes transferred in 378.669512 secs (11339489 bytes/sec)

Ref:

3voto

penkoad Puntos 41

Puede ser que la tarjeta SD sea así de lenta.

Echa un vistazo a este punto de referencia (Random Write, 4 KB (QD=1) [MB/s]) y verás que la mayoría de las tarjetas SD tienen un pésimo rendimiento de escritura (por debajo de 100 kB/s) para archivos pequeños - y una instalación típica de linux consiste en un montón de archivos pequeños que se escriben en el disco.

El lector de tarjetas interno debería ser capaz de leer/escribir al menos 20 MB/s - es muy poco probable que otro lector de tarjetas mejore tu experiencia con esta misma tarjeta SD.

Una vez que todos los archivos están escritos, es decir, el sistema está instalado, es posible que pueda ejecutar Linux desde la tarjeta SD a una velocidad aceptable, ya que se trata principalmente de acceso de lectura.

1voto

ddiepo Puntos 11

Si la tarjeta está montada con la opción de sincronización, esto significa que cada cierre de un archivo hace que la escritura se vuelque al disco y, por lo tanto, su rendimiento en archivos pequeños será terrible en comparación con los archivos grandes. Si quitas la sincronización de las opciones de montaje, entonces no hay garantía de que la escritura de un archivo provoque su salida al disco -- tienes que llamar manualmente a la sincronización desde la línea de comandos, o desmontar el dispositivo antes de quitarlo o apagarlo. Sin embargo, sin la sincronización debería ver que el rendimiento de escritura de archivos pequeños mejora drásticamente.

1voto

Derry Gao Puntos 3

No, esto es claramente un problema con el Mac OS. Obtengo un rendimiento significativamente más rápido cuando hago esta misma operación utilizando Linux en una máquina virtual que se ejecuta en el mismo Macintosh. Es decir, la máquina virtual es 5 veces más rápida que el sistema operativo nativo.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X