Pen drive mais lento que o anunciado

0

Comprei um pen drive de 32 GB (SanDisk Ultra Fit 3.0). A embalagem diz: acelere até 150 MB / s. No meu sistema Ubuntu Linux, a velocidade de leitura do dispositivo de armazenamento bruto (com sudo dd if=/dev/sdb of=/dev/null bs=16M ) é de apenas 51 MB / s. Eu não tenho acesso fácil a outros sistemas operacionais para tentar.

Qual é o problema e como posso acelerar?

Por favor, note que o pen drive está conectado a uma porta USB 3.0, que estava lendo um disco rígido externo com velocidade de 240 MB / s alguns minutos antes de eu experimentá-lo com o pen drive.

    
por pts 02.12.2017 / 15:47

1 resposta

1

Acho que você se deparou com um caso de diferença entre velocidade teórica e prática. A velocidade teórica é a velocidade de uma operação / dispositivo / etc no melhor cenário possível . Por exemplo. nenhum erro acontece, tudo é feito como planejado, nenhum fator externo é levado em consideração, etc. Velocidade prática é a velocidade quando todos esses são levados em consideração.

Uma maneira fácil de identificar isso é a expressão "até" antes da velocidade. É claro que as empresas vão anunciar a si mesmas da maneira que parecem ser as melhores, o que não é prático.

EDIT: Flash drives são praticamente de acesso aleatório (o que significa que qualquer dado pode ser acessado em tempo constante, independentemente de onde ele esteja), mas são divididos em blocos sequenciais (significando que para ler ou escrever você precisa ler tudo o que vem antes dele). Quando os dados são escritos ou lidos em um bloco, todo o bloco precisa ser lido / gravado (quando você lê, as partes desnecessárias são jogadas em algum lugar no meio da operação, e quando você escreve, a mesma coisa é escrito de volta para as partes inalteradas que estavam lá antes). Portanto, no caso de um pendrive e leitura, o melhor cenário é quando todos os dados solicitados alinham exatamente com um bloco. Em situações da vida real, isso raramente acontece, a menos que o tamanho do bloco seja levado em consideração ao solicitar ou gravar dados (o usuário não tem controle sobre isso).

Outra coisa a ser levada em consideração é que, nos bastidores, tanto o dispositivo quanto o sistema operacional podem fazer correções de erros quando necessário, o que atrasa o processo, mas não causa um erro registrado (porque foi corrigido automaticamente quando detectado). Sem isso, você pode corromper os dados sem perceber, por isso é um recurso necessário.

TL; DR: O melhor cenário é praticamente inatingível o tempo todo. Pode haver certos tipos de operações que se aproximam dele, por exemplo, os HDDs têm um desempenho muito melhor em menos arquivos grandes do que em muitos arquivos pequenos.

EDIT2: Para pen drives, não sei quais tipos de operações funcionam melhor.

EDIT3: No caso de uma unidade flash, o tamanho da leitura de dados não importa ao testar a velocidade. Se o SO que você está usando lê, por exemplo, 128 bytes por vez, e o dispositivo tem um tamanho de bloco de 256 bytes, cada 256 bytes precisa de duas operações, tornando a velocidade a metade do que poderia ser. No entanto, o fato de os pendrives serem tratados como dispositivos de bloco indica que o Linux pode detectar o tamanho do bloco, tornando essa causa improvável. Desculpe, não consigo pensar em nenhum outro motivo que diminua a velocidade, mas seja lá o que for, não acho que seja solucionável.

    
por 02.12.2017 / 15:57