Mirando /proc/meminfo
mostrará el Dirty
el número se reduce con el tiempo a medida que se acumulan todos los datos; parte de ella puede derramarse en Writeback
también. Ese será un resumen contra todos los dispositivos, pero en los casos en que un dispositivo en el sistema es mucho más lento que el resto, generalmente terminará donde todo en esa cola está relacionado con él. Probablemente encontrarás el Dirty
número grande cuando empiezas y el sync
termina aproximadamente al mismo tiempo que se acerca a 0. Intente esto para obtener una pantalla interactiva:
watch -d grep -e Dirty: -e Writeback: /proc/meminfo
Con discos regulares normalmente puedo ignorar Writeback
, pero no estoy seguro de si está involucrado con mayor frecuencia en la ruta de transferencia USB. Si solo rebota hacia arriba y hacia abajo sin una tendencia clara, probablemente solo puedas mirar el Dirty
número.
Puedes mirar el /sys/block/<device>/stat
archivo para el dispositivo adecuado mientras realiza la sincronización. La columna 9 indicará la cantidad de solicitudes en curso en el dispositivo, que deberían reducirse a cero cuando se complete la sincronización.
No conozco una forma de traducir eso a una cantidad de bytes, pero debería darle una idea aproximada de cuántas "cosas" aún están pendientes.
Consulte el archivo stat.txt en la documentación del kernel para obtener un poco más de información. (También hay un inflight
archivo en ese directorio en mi sistema que parece que podría contener solicitudes de lectura y escritura en curso, pero no puedo encontrar documentos para eso).
Al usar la respuesta de Greg, simplemente puede tener sync
ejecutar en segundo plano mientras se muestra el estado del bloque sucio en la memoria.
Para lograr esto, simplemente ejecute este comando:
sync & watch -n 1 grep -e Dirty: /proc/meminfo
Esto llamará a sync
en segundo plano mientras se ejecuta watch
al frente. Cuando el sync
el comando habrá terminado (alrededor de cuando el tamaño del bloque sucio haya llegado a 0), tendrá una salida similar a esta:
1] + 27260 done sync
Esto significa que el comando ha terminado y puedes eliminar el watch
comando con Ctrl +C .