Meça os tempos de leitura USB para todos os dispositivos usando hdparm

Meça os tempos de leitura USB para todos os dispositivos usando hdparm

Gostaria de medir os tempos de leitura de todos os dispositivos USB montados.

EUencontradoque hdparmé adequado para isso:

$ sudo hdparm -tT /dev/sdb1

No entanto, gostaria de anexar vários dispositivos e iterar /dev/bus/usb/<bus>/<address>. Isso me dá um erro:

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

(Encontrei o ônibus e o endereço via lsusb.)

Como posso fazer essa abordagem funcionar?

Responder1

Você poderia fazer algo assim:

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

Isso percorre /proc/partitionse recupera os nomes dos dispositivos antes de passar esses valores para hdparm, que deve ser executado em dispositivos, não em partições (por exemplo, /dev/sda e não /dev/sda1).

Conforme escrito, o comando acima também funcionará nos discos rígidos existentes, bem como em dispositivos USB. Para excluí-los, modifique a grep -vparte. O comando acima exibirá todas as linhas que não terminam em a digitou contêm a palavra name.

Por exemplo, se você tiver dois discos rígidos que deseja excluir ( /dev/sdae /dev/sdb), o comando acima pode ser alterado para isto:

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

informação relacionada