windows VM extremamente lento ao executar a partir de um SSD USB3.0 externo em comparação com uma VM Linux e um HDD USB3.0

6

Informações longas: Eu estou tentando executar um windows virtualbox vmdk de um SSD externo USB 3.0. O sistema que eu uso é o Arch Linux, que também é instalado neste SSD externo. A VM funciona bem se eu carregá-lo a partir do SSD interno (enquanto estiver usando o sistema no SSD externo). O mesmo vale para uma VM Linux carregada do SSD externo (também durante o uso do sistema no SSD externo).

Informação resumida: O SSD externo é um samsung 850 evo 512GB (M2 Verison) com um adaptador M2 para USB3.0. Como mencionado acima outros Vms e ao executar o Windows VM a partir do SSD interno ou até mesmo de um HDD USB3.0 externo (isso é lento, mas ainda é muito mais rápido, então o SSD externo, neste caso) funciona bem.

Configurações da VM:

16GB ram
chipset PIIX3
I/O APIC enabled
Hardware Clock UTC Time enabled
4 Cores 100% (4.5Ghz)
VT-x enabled

Problema: A VM inicializa corretamente, mas fará com que o sistema Host congele de tempos em tempos e alcançará a tela de login após ~ 20 Minutos. Como parecia ser um problema de disco, eu carreguei o vm do SSD interno e desativei a função de paginação de disco do Windows para reduzir gravações de disco. Eu então copiei o vmdk alterado para o SSD externo e modifiquei o Virtualbox no meu sistema externo de acordo. No entanto, isso não mudou nada. (Eu até aumentei o RAM para 16GB).

Suposição Por algum motivo, o Windows VM faz uma quantidade enorme de gravações em disco em comparação com a VM linux, O engraçado é que eu fiz o mesmo há algum tempo em um disco rígido USB 3.0 externo que é realmente muito mais lento que o SSD (no entanto, eu não executo o sistema host na mesma unidade)

O problema certamente não é o SSD, já que estou usando o mesmo SSD que um SSD interno. O adaptador está funcionando bem para o Linux System, Linux VM e qualquer outro programa, então não acho que seja isso.

Vou tentar pesquisar os logs para alguma informação, mas se alguém tiver outro Idear, será muito apreciado.

Pergunta: Como posso melhorar o desempenho da VM do Windows no meu SSD externo e por que o Windows precisa de muito tráfego de IO?

Comentário da solução:

Usando cache de write-back como sugerido por @Eugen. De fato, a VM tornou-se utilizável, suponho que a quantidade extra de IO formando o sistema host no mesmo SSD externo foi demais para o controlador USB3.0 (sem cache). No Virtualbox você encontra esta opção em:

Your_VM_Settings->Storage->select_your_Controller->Attributes->Use Host I/O Cache

Além da desvantagem mencionada por @Eugen Rieck, parece haver mais um de acordo com @aeichner no fórum virtualbox

The host I/O cache is not used by default because it can cause I/O timeouts in the guest if the host faces a high I/O load and the host cache can't cope with it.aeichner, 2011

    
por MADforFUNandHappy 12.02.2017 / 17:17

1 resposta

9

A má notícia: o Windows (apenas o sistema operacional, não aplicativos) faz mais gravações em disco do que o Linux em ca. 2 ordens de magnitude, não há nada que você possa fazer sobre isso. Além disso, ele faz uma ordem de leitura de disco maior.

A boa notícia: Ao usar o cache writeback no nível Hypervisior (ou seja, no VirtualBox), você pode melhorar significativamente a situação. Isso vem com o risco de corrupção de dados se o host ficar com problemas, mas com uma boa UPS isso deve ser gerenciável.

Um mais: Se você usar snapshots, reconsiderar - os snapshots têm um fator de amplificação de gravação significativo, o que prejudica em tal cenário.

    
por 12.02.2017 / 17:31