Muito lento em USB i / o

4

(Aviso: Linux noob trocando do Windows 7 para o Linux.) Eu tenho um PC dual-boot com CPU i5 3rd gen core (4 núcleos reais), 12GB de RAM e um SSD Samsung EVO850 de 240GB. Este sistema não é o mais rápido sob o sol, mas também não é desleixado e, normalmente, tudo é suave, fluido e bem comportado, tanto no Windows 7/64 quanto no trecho Debian que estou usando.

No entanto, acabei de copiar (com rsync -aW) um diretório bastante grande de arquivos .jpg (~ 50GB) do SSD para um stick USB3.0. O stick é reconhecido como USB3, verifiquei isso com o lsusb e, embora tenha uma velocidade de gravação nominal de ~ 90MB / s, pareceu que a cópia não era muito mais rápida do que 25MB / s. Ambas as partições são formatadas em NTFS, sem compactação.

No entanto, o problema real é que durante o processo de cópia, o PC ficou quase inutilizável. Quase qualquer atividade no navegador (Palemoon), como carregar uma nova página ou apenas adicionar um marcador, resultou em 30, 40, 50 segundos de paralisação total (primeiro pensei que o navegador estava morto, mas ficou totalmente incomunicável por quase um minuto). Eu verifiquei em uma janela de terminal com htop, nenhum dos 4 núcleos tiveram mais de 5% de carga em qualquer período de 10 segundos, o uso de memória foi bem inferior a 1GB. No mesmo terminal, um comando df levou mais de 40 segundos para ser concluído e, às vezes, a linha de comando também estava inativa por 5 ou 10 segundos.

Isso parece um caso muito ruim de gargalos severos de i / o em algum lugar ... então eu tentei novamente o mesmo cenário e dei ao rsync um modo de ionização inativo e o renicei para ser o mais legal possível. Isso ajudou em certa medida, mas o PC ainda está longe de ser utilizável.

Eu fiz e ainda faço o mesmo ou trabalhos muito parecidos com exatamente o mesmo hardware no Windows 7/64 e, embora o sistema claramente não seja tão rápido quanto sob carga zero, ele permanece definitivamente no lado utilizável.

Espero que exista uma maneira melhor de copiar $ BIG_DATA para um pendrive USB do que isso ... porque seria melhor inicializar no Windows, fazer a cópia lá e depois reiniciar no Debian.

Alguém tem boas idéias sobre como eu posso tornar as coisas mais fluidas? (Eu não me importo muito se a cópia leva mais alguns minutos, contanto que esteja rodando em segundo plano e eu possa trabalhar mais ou menos normalmente em primeiro plano.)

    
por tmsg 10.09.2018 / 11:36

1 resposta

5

O Rsync empurra os discos para suas velocidades máximas e você não deve esperar mais nada para ser responsivo. Carregar programas contenderá pelo acesso com as unidades, e até mesmo a troca será lenta.

As soluções podem ser:

  • Use a opção --drop-cache no rsync (não disponível em todas as versões)
  • Use nocache , já disponível como pacote em algumas distribuições
  • Grandes páginas ainda podem ser um problema no Linux, mas é facilmente resolvido executando watch -n 5 sync , ou por mais avançado soluções radicais que não são para um noob
  • Montar seus sistemas de arquivos com noatime em /etc/fstab reduzirá as gravações de registro de data e hora, se você tiver uma quantidade enorme de arquivos pequenos
  • Alguns outros métodos que também exigem bom conhecimento, compreensão (e backup) são:

    # hopefully better multitasking I/O performance
    echo 20 > /proc/sys/vm/dirty_ratio
    
    # Try to keep at least 100MB of free RAM at all times
    echo 100000 > /proc/sys/vm/min_free_kbytes
    
    # Default 100 - try more aggressively to reclaim inodes, etc from cache
    echo 160 > /proc/sys/vm/vfs_cache_pressure
    
por 10.09.2018 / 12:14