Mi tarjeta SD parece estar funcionando lentamente. Tengo una tarjeta ADATA 16 GB SDHC Clase 10. Verifiqué la lista de compatibilidad que enumera una tarjeta con especificaciones similares, y dice que está "funcionando". Incluso tareas simples como obtener un listado de directorio en un directorio pequeño pueden tomar unos segundos la primera vez que lo solicito. ¿Hay alguna herramienta que pueda usar para verificar qué tipo de rendimiento obtengo de mi tarjeta SD? Además, ¿hay algún cambio de configuración que pueda hacer para que la tarjeta SD responda más rápido?
Estoy usando la Raspberry Pi como una caja de semillas BitTorrent sin cabeza , por lo que todo lo que me encuentro se ejecuta en la línea de comandos. Estoy usando la división 240/16 para asegurarme de tener la máxima cantidad de memoria disponible.
Actualizaciones
Después de ejecutar algunas pruebas como recomendó @Krzysztof Adamski con "dd", recibí algunos buenos resultados al obtener una velocidad de lectura de 20 MB / sy una velocidad de escritura de aproximadamente 10 MB / s. Sin embargo, todavía parece tener algunos problemas de velocidad de E / S. Al probar, ejecuté los comandos "dd" en segundo plano, y ejecuté la parte superior, para ver qué estaba pasando. Noté que el proceso "mmcqd" estaba consumiendo bastante uso del procesador, entre 5% y 10%. Miré a mi alrededor en Internet y encontré muchas instancias de personas que informaron que "mmcqd" usa bastante CPU. Luego ejecuté el siguiente comando para probar la lectura y la escritura al mismo tiempo
sudo dd if=/dev/mmcblk0 of=test.dat bs=1M count=1024
Al ejecutar este comando, obtuve un rendimiento de solo 977 kB / s, y "mmcqd" informó el uso del procesador entre 10% y 25% cada 5 a 10 segundos, después de lo cual volvería a reducirse a nada. Entonces, hice algunas pruebas más. Ejecuté los siguientes dos comandos en segundo plano y luego observé lo que estaba pasando arriba.
sudo dd if=/dev/mmcblk0 of=/dev/null bs=1M count=1024 &
sudo dd if=/dev/zero of=test.dat bs=1M count=1024 &
En este caso, "mmcqd" alcanzaría un pico de alrededor del 35% del uso del procesador, pero el rendimiento fue mucho mejor a alrededor de 7.5 MB / s para lectura y alrededor de 5.3 MB / s para escritura.
Parece que hay algún tipo de problema aquí donde las escrituras pesadas hacen que el "mmcqd" bloquee el sistema. Esto hace que el demonio de transmisión disminuya a casi cero tan pronto como la velocidad sea demasiado alta mientras espera la tarjeta SD. Cuando ejecuto el demonio de transmisión, también veo que el uso de "mmcqd" es bastante alto.
fuente
Respuestas:
Tarjeta de prueba de velocidad de lectura:
Hay dos formas fáciles de probar la velocidad de lectura (el directorio de listado es solo una operación de lectura):
usando el comando dd:
sudo dd if=/dev/mmcblk0 of=/dev/null bs=8M count=100
Esto leerá 800 MB de datos de su tarjeta SD y los descartará en / dev / null. Si lleva mucho tiempo, puede cambiar count = 100 para contar = 10 para leer solo 80MB. Una vez finalizado el comando, debe imprimir un mensaje con velocidad de lectura. Debe obtener al menos un par de MB / s.
usando el comando hdparm:
sudo hdparm -t /dev/mmcblk0
Esto debería proporcionarle un resultado de velocidad similar al del primer comando y también debería tener al menos un par de MB / s.
Tarjeta de prueba de velocidad de escritura:
No hay una manera fácil de probar la velocidad de escritura, ya que para hacerlo tendría que escribir algunos datos en la tarjeta. Si desea hacer esto en un nivel bajo (omitiendo el sistema de archivos), tendría que anular algunos datos en la tarjeta y probablemente no quiera hacerlo. Esto se puede hacer si tiene una partición de intercambio, ya que se puede desactivar fácilmente (con
swapoff -a
), probar con dd (condd if=/dev/zero of=/dev/{yourswappartitionnanehare} bs=8M count=25
) y luego volver a crear (conmkswap /dev/{yourswappartitionnanehare}
).Si no tiene una partición de intercambio, puede probar la velocidad de escritura del sistema de archivos también usando el comando dd:
dd if = / dev / zero of = / home / pi / testfile bs = 8M count = 25
Esto creará un archivo de 200 MB
/home/pi/testfile
. Puede usar cualquier otro nombre de archivo que desee.Notas:
dmesg
comando para ver si hay algún mensaje sobre el subsistema mmc.fuente
Para el rendimiento de la tarjeta SD, importa mucho si el acceso es secuencial (como con dd) o aleatorio en bloques pequeños. Las tarjetas SD, especialmente las de clase alta, parecen estar optimizadas para acceso secuencial, lo cual es bueno para almacenar fotografías o videos. Sin embargo, para ejecutar un sistema operativo de la tarjeta SD, el acceso aleatorio es más importante, ya que se leen y escriben muchos archivos pequeños. Supongo que bittorrent genera accesos algo aleatorios también.
Estos dos hilos de discusión contienen muchos puntos de referencia y discusiones sobre tarjetas SD. En general, se encontró que la velocidad de escritura aleatoria es decisiva para la capacidad de respuesta de ejecutar un sistema operativo de la tarjeta. Esta velocidad es con frecuencia mucho más baja que la velocidad de las escrituras secuenciales, que es la velocidad que a los fabricantes les gusta informar. La clase de tarjeta SD se basa en velocidades secuenciales, y las clases más bajas (4 o 6) pueden ser más adecuadas para el uso de frambuesa.
La herramienta iozone mide la velocidad de muchos patrones de acceso diferentes. He publicado breves instrucciones para compilar iozone en la frambuesa aquí .
fuente
Para la ranura integrada de RasPI hay una gran discusión en el sitio de RasPI: http://www.raspberrypi.org/phpBB3/viewtopic.php?f=63&t=5057&sid=ee346e3e7cea48d2858a143bcf086362
No tuve tiempo de leer las 12 páginas de discusión, pero parece ser un problema con la señal CLK.
fuente
Escribes "bittorrent" y eso desencadena mi conjetura / respuesta.
El protocolo torrent recibe paquetes en orden aleatorio de sembradoras aleatorias.
Una vez que comience a usar torrent en cualquier sistema de archivos, se fragmentará bastante. Esto perjudicará el rendimiento a lo grande.
Por lo que sé sobre la SDCARD, está ejecutando FAT / FAT32 y eso es aún peor para manejar la fragmentación.
Así que encuentre una manera de desfragmentar su SDCARD, o copie todos los archivos y luego reinstale el sistema operativo.
Por último, escribir MUCHO (como lo hará el motor de bittorrent) desgarrará su SDCARD más rápido que el uso normal. No digo que sea incorrecto hacerlo, de hecho, me había parecido similar. Pero, esa podría ser la razón de su problema.
Desearía que hubiera un cliente torrent que transfiriera / moviera automáticamente los archivos descargados a otro destino una vez que se completara la descarga + "tiempo de carga reservado".
Entonces la desfragmentación iría mucho más rápido.
fuente