Tutoriais

10/01/2022 às 14:04

14 min leitura

Avatar Autor
Por Emanuel Negromonte

Teste de leitura e gravação I/O com o comando dd no Linux!

Faça um teste de I/O com o comando DD no Linux e descubra a velocidade dos seus dispositivos de armazenamento!

Teste de leitura e gravação I/O com o comando dd no Linux!

A velocidade de uma unidade é medida pela quantidade de dados que pode ler ou escrever. O comando dd é uma ferramenta de linha de comando simples, que pode ser usada para ler e escrever blocos arbitrários de dados em uma unidade e medir a velocidade, na qual a transferência de dados ocorreu. Nesta publicação, usaremos o comando dd para testar a velocidade de leitura e gravação das unidades usb e ssd usando o comando dd.


A velocidade de transferência de dados não depende unicamente da unidade, mas também da interface com a qual ela está conectada. Por exemplo, uma porta usb 2.0 possui um limite de velocidade operacional máximo de 35 Mbytes/s, portanto, mesmo se você fosse conectar uma unidade de pen drive usb 3 de alta velocidade a uma porta usb 2, a velocidade seria limitada ao limite inferior.

Além deste artigo, você também pode ler mais sobre o comando dd em um artigo onde mostramos 5 exemplos de uso do comando dd no Linux.

Método de teste usando comando dd

Monte a unidade e navegue até ela pelo terminal. Em seguida, use o comando dd para primeiro escrever um arquivo usando blocos de tamanho fixo. Em seguida, leia o mesmo arquivo usando o mesmo bloco.

A sintaxe geral do comando dd parece assim:

Terminal
dd if=local/de/origem of=/local/de/destino bs=tamanho_do_bloco count=número_de_blocos

Ao escrever para a unidade, simplesmente lemos de /dev/zero, que é uma fonte de infinitos bytes inúteis. E quando lido a partir da unidade, lemos o arquivo escrito anteriormente e enviamos para /dev/null. Em todo o processo, a ferramenta acompanha a velocidade com a qual a transferência ocorre e o informa.

SSD

O SSD que estamos usando é um ssd “Samsung Evo 120GB”. É um ssd de nível iniciante com ótimo custo/benefício e também é meu primeiro SSD. É também um dos melhores do mercado.

Neste teste, o ssd está conectado a uma porta sata 2.0.

Velocidade de escrita com o comando dd

Antes dê permissão de escrita para o ssd e depois execute:

Terminal
dd if=/dev/zero of=./largefile bs=1M count=1024

O tamanho do bloco é realmente bastante grande. Você pode tentar com tamanhos menores como 64k ou até 4k.

Teste de velocidade de leitura com o comando dd no Linux

Agora leia o mesmo arquivo. No entanto, primeiro limpe o cache de memória para garantir que o arquivo seja realmente lido da unidade.

Execute o seguinte comando para limpar o cache de memória:

Terminal
sudo sh -c “sync && echo 3 > /proc/sys/vm/drop_caches”

Agora leia o arquivo:

Terminal
dd if=./largefile of=/dev/null bs=4k

O wiki do Arch Linux tem uma página cheia de informações sobre a velocidade de leitura/gravação de vários SSDs de diferentes fornecedores como Intel, Samsung, Sandisk, etc.

Verifique isso na seguinte URL.
https://wiki.archlinux.org/index.php/SSD_Benchmarking

Como medir a velocidade e leitura e escrita no pendrive/USB com o comando dd no Linux

Neste teste, mediremos a velocidade de leitura e gravação das unidades usuais usb/pen. As unidades estão conectadas às usb padrão de 2 portas. O primeiro é um drive Sony usb 4gb e o segundo é um drive de Strontium de 16GB.

Primeiro, conecte a unidade na porta e monte-a, para que seja legível. Em seguida, navegue até o diretório de montagem pela linha de comando.

Sony 4GB – Escrita

Neste teste, o comando dd é usado para gravar 10.000 pedaços de 8 Kbytes cada um em um único arquivo na unidade.

Terminal
# dd if=/dev/zero of=./largefile bs=8k count=10000

Saída:

10000+0 records in
10000+0 records out
81920000 bytes (82 MB) copied, 11.0626 s, 7.4 MB/s

Portanto, a velocidade de gravação é de cerca de 7,4 Megabyte/s.

Sony 4GB – Leitura

O mesmo arquivo é lido para testar a velocidade de leitura. Execute o seguinte comando para limpar o cache de memória:

Terminal
sudo sh -c “sync && echo 3 > /proc/sys/vm/drop_caches”

Agora leia o arquivo usando:

Terminal
dd if=./largefile of=/dev/null bs=8k

Saída:

8000+0 records in
8000+0 records out
65536000 bytes (66 MB) copied, 2.65218 s, 24.7 MB/s

A velocidade de leitura foi em torno de 25 Mbytes/s, o que é mais ou menos o padrão para unidades usb baratas.

E a unidade usb acima foi conectada em uma porta USB 2.0 e alcançou uma velocidade de leitura de 24,7 Mbytes/s, o que não é muito ruim. Mas a velocidade de gravação está muito lenta.

Agora, vamos fazer o mesmo teste com uma unidade Strontium 16GB. Strontium é outra marca muito barata, embora as unidades usb sejam confiáveis.

Strontium 16gb – Velocidade de gravação com o dd no Linux

Terminal
dd if=/dev/zero of=./largefile bs=64k count=1000

Saídas:

1000+0 records in
1000+0 records out
65536000 bytes (66 MB) copied, 8.3834 s, 7.8 MB/s

Strontium 16gb – Velocidade de leitura com o dd no Linux

Terminal
sudo sh -c “sync && echo 3 > /proc/sys/vm/drop_caches”
dd if=./largefile of=/dev/null bs=8k

Saídas:

8000+0 records in
8000+0 records out
65536000 bytes (66 MB) copied, 2.90366 s, 22.6 MB/s

A velocidade de leitura é menor do que a unidade da Sony.

Fundador do SempreUPdate. Acredita no poder do trabalho colaborativo, no GNU/Linux, Software livre e código aberto. É possível tornar tudo mais simples quando trabalhamos juntos, e tudo mais difícil quando nos separamos.

Mais lidas

Últimos posts

Newsletter

Receba nossas atualizações!

Newsletter

Receba nossas atualizações!
  • Este campo é para fins de validação e não deve ser alterado.