Tengo un Raspberry Pi que ejecuta Raspbian Wheezy sin cabeza con todo el software relacionado con gráficos desinstalado.
Tengo bitcoind en ejecución, que consume principalmente la mayoría de los recursos. Por lo general, cuando reviso los procesos a través de top
, puedo ver que solo bitcoind
usa una cantidad significativa de recursos, con sshd
y top
en segundo y tercer lugar más o menos.
Por alguna razón, actualmente, un nuevo proceso comienza a alcanzar su punto máximo en el uso de recursos, llamado mmcqd/0
. A menudo utiliza hasta el 55% de la potencia de la CPU en los picos y, de lo contrario, se mantiene en una constante de alrededor del 5%.
¿Qué hace este proceso?
He leído que esto puede ser causado por una tarjeta SD lenta, pero probé mis velocidades de lectura / escritura y obtuve> 15 MB / s para ambos (obtuve una tarjeta SD de clase 10 de 32 GB).
mmcqd
no es un proceso específico de Pi, sino que existe para Linux en general.Respuestas:
mmcqd
es un hilo del núcleo, responsable de administrar las operaciones de E / S en cola en la tarjeta SD. Un uso elevado de la CPU de ese proceso indica que tiene un cuello de botella de E / S de disco.La velocidad de lectura / escritura secuencial real no siempre es significativa para las tarjetas SD, el acceso aleatorio es más típico para un sistema operativo. Si sabe que con
bitcoind
frecuencia escribe datos no críticos en el disco, considere usarlostmpfs
para el almacenamiento de datos. Luego, utilizando un trabajo cron, puede sincronizar periódicamente los datos en tmpfs al disco.También puede experimentar con el uso de un disco duro USB, que debería funcionar mejor con acceso de escritura (aleatorio).
fuente
tmpfs
en la tarjeta SD en lugar de acceder a la tarjeta SD directamente?tmpfs
reside en la RAM. Si un proceso cambia constantemente pequeñas partes de un archivo, puede valer la pena guardar estos cambios periódicamente. Básicamente, está intercambiando seguridad de datos por rendimiento.He tenido el mismo problema en un sistema Linux incorporado, por lo que no es exactamente una Raspberry Pi, pero no está muy lejos.
En mi caso, el problema era simplemente que el disco estaba lleno y había un proceso tratando de escribir registros. Creo que las repetidas fallas de escritura estaban causando que mmcqd volviera a intentarlo varias veces y tal vez mantuviera un hilo en espera.
Después de eliminar algunos archivos de registro, todo estuvo bien.
fuente