Como verificar o desempenho de gravação no nível do arquivo?

0

Em uma pergunta muito semelhante , a resposta aceita sugere:

dd if=/dev/zero of=/tmp/output bs=8k count=10k;

para medir a velocidade de gravação de um disco rígido.

Meus testes foram inconclusivos. Eu tenho uma instalação RAID 1 de software baseado em LVM com dois discos rígidos comuns. Ao executar o comando acima mencionado, ele fornece o seguinte resultado:

10240+0 records in
10240+0 records out
83886080 bytes (84 MB) copied, 0.0784284 s, 1.1 GB/s

Não que eu esteja insatisfeito por ter uma matriz RAID que armazena 1 GB por segundo, mas ainda gostaria de saber:

  • Por que estou recebendo resultados errados? É algo a ver com o cache? RAID? LVM?

  • Como obter o desempenho de gravação em nível de arquivo real?

por Arseni Mourzenko 25.01.2015 / 12:24

1 resposta

1
  • Sem motivo aparente, o tamanho do seu arquivo de teste é muito pequeno, apenas 80MB. Um arquivo pequeno como esse tornará o resultado menos preciso, mas também significará que toda a operação pode ser satisfeita pelo cache e não testar o desempenho real do sistema de arquivos.

    Para corrigir, deixo o tamanho do arquivo muito maior, digamos um par de GB.

    Provavelmente, você precisa fazer um sync depois e medir o resultado inteiro. Como em time 'dd if=/dev/zero of=/tmp/output bs=1M count=2k && sync' ou algo assim.

  • Certifique-se de que / tmp não é realmente um tmpfs, caso em que é armazenado na memória, não no disco. Certifique-se de que a partição de destino seja uma partição de disco.

  • Copiar de / dev / zero pode, em alguns casos, resultar em um desempenho artificialmente alto quando a mídia de disco executa sua própria compactação de dados, porque uma cadeia de zeros reduz praticamente nada. Este será um problema específico em SSDs. Certifique-se de que seus dados de teste sejam aleatórios o suficiente para não compactar, como arquivos JPEG ou vídeos MP4 (e não o mesmo arquivo repetidas vezes, porque isso ainda será bem compactado). Os dados aleatórios funcionarão melhor se forem pré-gerados, não gerados em tempo real, porque isso irá abrandar a velocidade da transferência.

por thomasrutter 25.01.2015 / 12:44