Como estou excedendo as velocidades USB 2.0 em uma porta USB 2.0?

3

Estou gravando arquivos em uma unidade USB 2.0 de um disco RAM, que tem um arquivo preenchido aleatoriamente de 256 MB (criado a partir de / dev / urandom para impedir que o arquivo seja compactado demais). Quando vejo as velocidades das gravações de arquivos que são geradas a partir de dd , elas estão em média em torno de 75 MB / s. Isso é particularmente interessante, porque a velocidade máxima teórica do USB 2.0 é de 60MB / s.

O comando que estou executando é:

dd if=/var/mnt/temp_data/urandom of=/mnt/usb/$FILE_NAME bs=10M count=1 

Observe que estou executando isso várias vezes e preencha o disco com 95% de preenchimento. A razão para os arquivos de 10MB é ter certeza de que a unidade está bem próxima de 95%, e eu não conseguiria esse tipo de preenchimento com arquivos maiores, já que não sei em qual tamanho o memory stick será conectado, e ter vários arquivos faz parte do teste.

Se os motivos afetarem a velocidade de gravação, o que estou fazendo é testar a velocidade de gravação das portas USB em um sistema para ver se estão em conformidade com os padrões USB. Portanto, isso é relativamente angustiante e o preenchimento de / dev / urandom (indiretamente).

Então, por que isso está acontecendo e como faço para corrigir isso? Estou assumindo que as medidas que dd está produzindo são imprecisas, caso contrário, vou começar a vender gravadores de driver USB meus segredos.

(Desculpas se isso deve estar no unix.se, eu não tinha certeza)

    
por Yann 10.12.2014 / 11:20

1 resposta

2

Ok, seguir todos os comentários e nossa longa discussão no bate-papo aqui é a resposta para a pergunta:

Quando você está testando a velocidade de gravação no sistema, seja gravando em USB ou HDD, gravando em FilesSystem ou diretamente em disco no modo RAW, sempre certifique-se de gravar dados suficientes para preencher o cache . Se não há dados suficientes, você está medindo a velocidade de gravação para o cache (que está na RAM)

OP, tentou gravar 10MB de arquivos em um loop executando o comando sync entre as sessões de gravação.

O que efetivamente aconteceu, foi que o comando dd que fez a escrita iria gravar dados para armazenar em cache muito rapidamente. A velocidade reportada foi de cerca de 75MB / s. Depois disso, o comando sync levaria vários segundos para ser executado, mas o OP não levou isso em conta.

Depois de alterar o teste para gravar arquivos maiores, foi revelado que a velocidade real de gravação está em torno de 2,2 MB / s, o que está bem dentro dos padrões USB 2.0

    
por 10.12.2014 / 12:32