Pergunta

Espero que alguém aqui possa responder definitivamente:

  • Colocar um arquivo VHD em uma pasta compactada NTFS no host melhora o desempenho da máquina virtual, diminui o desempenho ou nenhum dos dois?
  • Que tal usar a compactação NTFS no convidado?
  • O uso de compactação no host ou no convidado causa problemas como erros de leitura ou gravação?
  • Se eu colocasse um VHD em uma pasta compactada no host, eu me beneficiaria ao compactá-lo?

Já vi referências ao uso da compactação NTFS em algumas postagens de blog de "dicas e truques" de VPC, e parece que metade deles diz para nunca fazer isso e a outra metade diz que não apenas economiza espaço em disco, mas na verdade pode melhorar o desempenho se você tiver uma CPU rápida e seu principal gargalo de desempenho for o disco.

Foi útil?

Solução

Isto é tudo uma questão de compensações.O disco leva um certo tempo para ler um certo número de bytes.Se você puder compactar os dados de forma que a soma do tempo reduzido que o disco leva para lê-los, combinado com o tempo que a CPU leva para descompactá-los, seja menor do que o tempo necessário para ler os dados descompactados do disco, você ganha desempenho.

O problema é que existem muitas variáveis ​​nisso, e é provável que tudo corra bem de qualquer maneira.Seu disco pode ler pequenos blocos mais lentamente, ou seus dados não podem ser muito compactáveis, ou sua CPU pode ser muito rápida, ou (e assim por diante).A única maneira de saber se isso faz diferença com certeza é experimentá-lo e medi-lo.As respostas que você obtém para diferentes dados/máquinas provavelmente serão diferentes.

Outras dicas

Você não verá erros de disco, mas pode ver desacelerações ao longo do tempo ou durante a escrita intensiva do disco pela VM. O motivo pelo qual você não comprimiria uma VM no lugar é o mesmo que você não comprime um banco de dados: o disco virtual é um dispositivo de bloco e a VM aborda -o usando compensações de bloco. Ele pressupõe que todos os blocos sejam do mesmo tamanho. Se eles são compactados, isso não é mais verdadeiro. O sistema de arquivos host deve fazer a tradução entre o local do bloco assumido e o local do bloco real (compactado). Isso seria bastante trivial sobre a sobrecarga se a coisa fosse somente leitura, mas os blocos mudam, assim como sua compressibilidade. Reescrever um bloco compactado pode significar que não se encaixa onde estava. O FS do host terá que movê -lo, que é uma etapa extra e que fragmenta o disco virtual.

Obviamente, sempre há fragmentação quando sua VM grava em novos locais que ainda não têm uma localização física. Você só pode vencer isso usando discos virtuais (não compactados) em tamanho real (cheio de estofamento vazio, ou seja, sem crescimento automático) e desfragando o host e o hóspede.

No armazenamento de estado sólido, a fragmentação não importa e a compactação ajudará a reduzir as gravações, o que aumenta a vida útil do seu disco. Mas você ainda está preso à CPU e na sobrecarga da memória da tradução do bloco.

Também tenha em mente que o controlador de disco pode estar deduzindo e compactando dados, para que os esforços do nível do sistema operacional possam ser redundantes.

Para as VMs que estão lendo amplamente, a compressão pode valer a pena. Infelizmente, o OSS moderno faz tanta tarefa doméstica, extração e atualização que eles escrevem continuamente, mas você pode limitar essa atividade a um instantâneo. Portanto, compacte a imagem base no lugar, mas não os instantâneos. O desempenho da gravação não será afetado. Advertência: os instantâneos podem crescer facilmente no tamanho do disco original. Você ainda precisará mesclá -los ou excluí -los com frequência; portanto, coloque -os onde você pode vê -los.

Conclusão: Mantenha -o simples.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top