Mida los tiempos de lectura de USB para todos los dispositivos usando hdparm

Mida los tiempos de lectura de USB para todos los dispositivos usando hdparm

Me gustaría medir los tiempos de lectura de todos los dispositivos USB montados.

Iencontróque hdparmes adecuado para esto:

$ sudo hdparm -tT /dev/sdb1

Sin embargo, me gustaría conectar varios dispositivos e iterar sobre ellos /dev/bus/usb/<bus>/<address>. Esto me da un error:

$ sudo hdparm -tT /dev/bus/usb/003/002
read(2097152) returned 62 bytes
 BLKGETSIZE failed: Operation not permitted
BLKFLSBUF failed: Operation not permitted

(Encontré el autobús y la dirección a través de lsusb).

¿Cómo puedo hacer que este enfoque funcione?

Respuesta1

Podrías hacer algo como esto:

for i in $(cat /proc/partitions | grep -v "[0-9]$\|name" | awk '{ print $4 }'); do hdparm -tT /dev/"$i"; done

Esto recorre /proc/partitionsy recupera los nombres de los dispositivos antes de pasar esos valores a hdparm, que está destinado a ejecutarse en dispositivos, no en particiones (por ejemplo, /dev/sda no /dev/sda1).

Tal como está escrito, el comando anterior también funcionará en los discos duros existentes, así como en los dispositivos USB. Para excluirlos, modifique la grep -vporción. El comando anterior mostrará todas las líneas que no terminan en a digitni contienen la palabra name.

Por ejemplo, si tiene dos discos duros que desea excluir ( /dev/sday /dev/sdb), el comando anterior podría cambiarse a esto:

for i in $(cat /proc/partitions | grep -v "[ab0-9]$\|name" | awk '{ print $4 }'); do hdparm -tT /dev/"$i"; done

información relacionada