Eu tenho um processador i5 de 6ª geração com 8 GB de RAM, disco rígido secundário de 4 TB e disco rígido primário de 500 GB. O disco rígido de 4 TB é formatado com NTFS. Meu objetivo é gravar uma grande quantidade de arquivos no disco. O disco é SATA 7200RPM para testar o algoritmo de compactação nos mesmos arquivos gravados. Os arquivos que serão gravados no disco serão compactados com tamanho menor com zlib, o intervalo será em torno de 12-20 KB. Eu escrevi um script bash para fazer 500.000 cópias do mesmo para fins de teste, mas descobri que 7 a 8 arquivos por si estavam sendo gravados naquele diretório que é de 100kB/s, enquanto a velocidade mencionada é muito maior. Quero atingir cerca de 100 arquivos por segundo. Eu não sei o que fazer. Por favor, sugira-me atingir a maior velocidade de gravação.
Responder1
Seu gargalo é o sistema de arquivos, não o disco. A escalabilidade do sistema de arquivos (e sua implementação) nas operações de arquivo (criação/exclusão/etc.) varia muito, dependendo da implementação e do design. Você provavelmente já arquiva uma taxa de transferência significativamente melhor ao gravar em um único arquivo sequencialmente, em vez de gravar a mesma quantidade de dados em arquivos diferentes, exigindo muitas operações do sistema de arquivos (abrir/criar).
Se você precisar realizar muitas operações de arquivo, precisará escolher um sistema de arquivos que seja melhor dimensionado no Linux do que no NTFS. XFS ou EXT4 são escolhas sólidas com bom desempenho.
Existem muitosbenchmarkscomparando as diferenças de desempenho que apontam o mesmo.
Responder2
Se você escreve arquivos pequenos, você está testando principalmente a velocidade com que o sistema de arquivos pode abrir/fechar arquivos (e possivelmente alguma latência de movimento da cabeça). E ao usar NTFS no Linux você não está usando o sistema de arquivos com melhor desempenho disponível. Se você quiser testar a velocidade do seu algoritmo, use um sistema de arquivos nativo (ext4...) e arquivos grandes. Então, se você obtiver resultados mais lentos no NTFS, saberá de onde eles vêm.