Por que um sistema operacional instalado em um pen drive USB é muito mais lento que um sistema operacional ativo executando o mesmo pen drive?

24

Rodar o Fedora 26 em um ambiente ao vivo quase parece uma velocidade nativa para mim, mas quando instalo o sistema operacional em um pen drive e o inicializo, tudo leva uma eternidade para iniciar. Quando as coisas começam, elas geralmente são muito mais rápidas, mas são praticamente inutilizáveis.

Isso é considerado normal?

hermancain
fonte
4
Não sei. Uma instalação do SO ativo pode tentar fazer o máximo possível em sistemas de arquivos montados na memória, enquanto uma instalação normal tentaria usar o disco mais lento? Parece-me razoável.
Kusalananda
2
Não é uma resposta para a pergunta, mas o problema desaparece com as unidades USB3, desde que você tenha um sistema operacional suficientemente novo para acessar o USB3 com eficiência. Eu tenho pen drives USB3 tão rápidos quanto o eMMC interno (não muito pior do que os SSDs SATA low-end).
R ..
Pode confirmar que o problema desaparece com unidades USB mais rápidas. Encomendei um novo pen drive de marca USB 3.0 e as coisas parecem quase nativas agora. No entanto, acredito que ainda estou usando portas USB 2.0, então imagino que, se estivesse usando portas 3.0, pareceria pelo menos tão rápido quanto meu HDD conectado via SATA.
precisa saber é o seguinte

Respostas:

37

Tem a ver com a forma como eles operam.

Para uma instalação regular em uma unidade flash, você está limitado pela largura de banda USB; portanto, a menos que você tenha um bom dispositivo USB 3.0, você fica preso a cerca de 20 MB / s (o que equivale aos discos rígidos tradicionais do final dos anos 90) . Todas as alterações também são gravadas no dispositivo, assim você compartilha a largura de banda USB para leituras e gravações.

Um sistema Live, no entanto, opera de maneira um pouco diferente. Em sua essência, um sistema Live consiste em uma imagem básica do sistema (geralmente uma imagem do SquashFS, pois é boa para economia de espaço) e uma sobreposição para interceptar alterações e mantê-las na RAM. Há duas maneiras específicas de lidar com isso:

  1. A imagem do sistema base é carregada na RAM na inicialização e tudo é executado a partir daí depois.
  2. A imagem do sistema base é mantida na unidade flash, mas algumas partes são pré-carregadas no cache.

No primeiro caso, você pode realmente executar mais rápido que a velocidade nativa (porque você nunca acessa nada mais lento que a RAM), mas sua inicialização demora muito tempo (porque você está copiando centenas de MB de dados na RAM. No segundo caso, você não será tão rápido quanto a velocidade nativa, mas, como nunca grava nada na unidade falsh, também quase nunca solta dados do cache e, portanto, também está rodando razoavelmente rápido.

Austin Hemmelgarn
fonte
3
Supondo que sua RAM (gratuita, disponível para armazenamento em cache) seja maior que a imagem do SO (que é uma suposição bastante razoável), a segunda opção acabará sendo essencialmente uma versão lenta da primeira.
Jörg W Mittag
Na verdade, com uma unidade USB 2.0 suficientemente boa, você pode obter até 30 MB / s (metade da largura de banda teórica do USB 2.0). Eu tenho uma dessas unidades.
Ruslan
@ JörgWMittag Praticamente, mas não vi muitas imagens ao vivo configuradas dessa maneira, provavelmente porque a primeira opção geralmente será mais eficiente se você tiver um dispositivo particularmente lento.
Austin Hemmelgarn
@Ruslan Bom ponto, embora pelo que eu vi, essas unidades sejam razoavelmente raras (especialmente com o USB 3.0 se tornando a norma, não há muito incentivo para criar unidades USB 2.0 de ponta).
Austin Hemmelgarn