Medir a velocidade de transferência do drive USB

2

Eu quero escrever um programa para descobrir a velocidade média de transferência de dados da minha porta USB. Como faço para implementá-lo?

O único método em que consigo pensar é escrever um arquivo grande no caminho onde a unidade USB está montada e descobrir o tempo para esse processo. Existe um método melhor que isso?

    
por xennygrimmato 04.08.2014 / 11:43

1 resposta

2

O USB2 pode atingir velocidades de 480 Mbit / s em teoria. Isso equivale (muito aproximadamente) a 60Mbytes / seg. Se você não conseguir acompanhar esse tipo de velocidade, obterá resultados errados.

Uma opção seria comprar / pedir emprestado um adaptador Ethernet USB que afirma que pode conectar 1 Gbit / Sec. Conecte-o a outra máquina com uma porta Ethernet de 1 Gbit / s por meio de um cabo flutuante ou um hub / switch de 1 Gbit / segundo.

Execute nc -v -l -p 5000 > /dev/null em uma máquina. Isso vai escutar na porta 5000 e enviar tudo o que recebe para /dev/null . Desta forma, não há HDD envolvido.

Por outro lado, execute time yes|nc -v a.b.c.d 5000 >/dev/null (onde a.b.c.d é o endereço IP da máquina remota). Isso enviará y para a máquina remota até que ela seja interrompida. Nesse momento, a quantidade de dados enviados será impressa e time imprimirá o tempo gasto.

Após um período de tempo (por exemplo, 10 ou 20 segundos) pare o envio pressionando Ctl-C e calcule a velocidade. Lembre-se que nc imprime a quantidade de bytes enviados, mas você pode precisar de bits. bits = 8 * bytes

Talvez seja necessário adicionar mais -v s aos comandos para que você possa ver o que está acontecendo.

    
por 04.08.2014 / 12:02