Velocidade de gravação NTFS muito lenta (<15MB / s) no Ubuntu

18

Ao copiar arquivos grandes ou testar a velocidade de gravação dd, a velocidade máxima de gravação que posso obter é de 12 a 15 MB / s em unidades usando o sistema de arquivos NTFS. Testei várias unidades (todas conectadas usando SATA), todas com velocidades de gravação de 100 MB / s + no Windows ou quando formatadas com ext4, portanto, não é um problema de alinhamento ou unidade.

topmostra alto uso de CPU para o mount.ntfsprocesso.

Processador dual core AMD (2,2 GHz)
Versão do kernel: versão 3.5.0-23-generic
Ubuntu 12.04
ntfs-3g: ambos 2012.1.15AR.1(versão padrão do Ubuntu) e2013.1.13AR.2

Como posso corrigir a velocidade de gravação?

Zulakis
fonte
Você já tentou testar o dd com acesso bruto à unidade (na unidade ou partição, não importa)? Observe que testar dessa maneira destruirá o sistema de arquivos e perderá quaisquer dados nele. Irá ignorar completamente os drivers NTFS.
Bob
Sim, acabei de fazer, o resultado é 149MB/s.
Zulakis
Só por curiosidade, tenho que perguntar se esta unidade é uma daquelas unidades de 4k e, portanto, se o seu sistema de arquivos pode estar desalinhado de alguma forma ?!
Waxhead
4
Acredito que a versão gratuita do NTFS-3G seja prejudicada, de modo que ele use gravações de 4 KiB sem cache, causando desempenho de gravação extremamente lento em SSDs e unidades USB. A empresa por trás do driver sugere comprar a versão comercial para obter melhor desempenho. Aparentemente, ninguém se importa o suficiente para realmente consertar (e se necessário forçar) a versão de código aberto, porque esse problema existe há quase uma década, desde que o NTFS-3G foi lançado.
Tronic
11
Com o mesmo laptop Ubuntu 2015.04, eu formatei para NTFS um disco rígido externo de 320 GB e um pen drive de 32 GB. Copiar 2 GB de fotos para a primeira estava demorando uma eternidade (6 horas estimadas depois de 30 minutos), mas para a segunda (pen drive), eram necessários apenas um minuto ou dois. Não alterei nenhuma configuração entre os dois.
Nicolas Raoul

Respostas:

18

Uma postagem anterior estava no caminho certo com a referência fornecida:

talvez verifique aqui idéias sobre o que poderia estar causando isso. http://www.tuxera.com/community/ntfs-3g-faq/#slow

A pergunta original menciona a observação do problema com grandes transferências de arquivos. Na minha experiência com a cópia de arquivos de mídia ou com backups, a opção principal nas Perguntas frequentes acima foi:

Solução alternativa: o uso da opção de montagem “big_writes” geralmente reduz o uso da CPU, desde que o software que solicita as gravações suporte grandes blocos.

Basta adicionar a opção big_writes, por exemplo

sudo mount -o big_writes /media/<mount_dir> /dev/<device>

Meu NAS Linux com uma CPU de baixa especificação agora gerencia gravações grandes de arquivos NTFS cerca de três vezes mais rápido. Melhorou de ~ 17MB / s para 50MB / s +. Até viu espiar cerca de 90 MB / s no iotop, o que provavelmente está próximo da capacidade de unidades externas (um HDD USB3 de 2,5 ").

Na página do manual NTFS-3G:

 big_writes
              This option prevents fuse from splitting write buffers  into  4K
              chunks,  enabling  big  write buffers to be transferred from the
              application in a single step (up to some system limit, generally
              128K bytes).

Notas finais:

  • a opção big_writes provavelmente não ajudará um benchmark de gravação aleatória em 4K ;-)
  • Enquanto o Tuxera parece reservar o driver pro NTFS para parceiros de sistema incorporados, o Paragon oferece um driver NTFS gratuito para uso pessoal alternativo chamado NTFS & HFS para Linux 9.0 Express e uma versão profissional. Contudo, não atesto este produto e, quando tentei uma versão anterior (v8.5), não consegui fazê-lo funcionar com a minha versão do Kernel do Linux no momento.
JPvRiel
fonte
A opção big_writes fez meu disco passar de 300kb / s para 35mb / s! Obrigado!
JosFabre 24/05/19
10 personagens fizeram um mundo de diferença, muito obrigado!
João Miguel Brandão
big_writesfoi preterido em 2016, no entanto, três anos depois, algumas distros ainda estão usando uma versão ainda mais antiga do libfuse.
Dmitry Grigoryev
2

talvez verifique aqui idéias sobre o que poderia estar causando isso. http://www.tuxera.com/community/ntfs-3g-faq/#slow

Parece um pouco com os 'velhos tempos' quando o arquivo io não estava usando o DMA por padrão. Hoje em dia é improvável, mas o BIOS está usando emulação IDE para unidades SATA? Porque se estiver emulando o IDE, também poderá estar emulando o modo não DMA.

Outro possível abrandamento é se a compactação de arquivos NTFS. A compactação está ativada na pasta em que você está gravando? Se for, isso também compactará os novos arquivos nessa pasta.

BeowulfNode42
fonte
Como posso testar se ele está usando DMA? Além disso, eu já experimentei todas as sugestões na página.
Zulakis 01/07
Uhm, pelo que li, o DMA é relevante apenas para unidades IDE? Estou usando apenas unidades SATA.
Zulakis 01/07
De acordo com en.wikipedia.org/wiki/Serial_ATA#Transport_layer , parece que o DMA é a única opção para o SATA. Vamos descobrir se seus bios está usando emulação ide
BeowulfNode42
0

Este é um tópico antigo, mas para as pessoas que procuram uma solução para o mesmo problema: o cpuspeed está ativo? O ntfs-3g está com fome de CPU e, no meu caso, a cpuspeed detectou erroneamente uma carga baixa para processos com muitas esperas de E / S, eventualmente estrangulando o núcleo e deixando o driver com fome.

Tente desativar o cpuspeed (se, por exemplo, estiver sendo executado como um serviço) e teste novamente.

irisx
fonte
Como determino que o cpuspeed está ativo? Isso é um daemon ou uma configuração?
Daniel Daniel
0

big_writesfoi descontinuado em 2016, o comportamento correspondente é sempre ativado ao usar a libfuseversão 3.0.0 ou posterior. Em um sistema Linux moderno, o baixo desempenho do NTFS geralmente significa que:

  • o disco está fragmentado
  • A compactação de disco NTFS está ativada
  • opções de montagem inadequadas, como syncas usadas
Dmitry Grigoryev
fonte