O SQLIO reside quando executado a partir de um convidado do Hyper-V em um VHD?

1

O SQLIO parece uma ferramenta útil. Eu pensei que seria interessante tentar medir a diferença de velocidade entre um disco físico e um VHD. Então, executei o SQLIO no host do Hyper-V na unidade física. Os resultados pareciam razoáveis. Então eu corri do convidado para testar o vhd (no mesmo disco físico). Eu esperava que fosse um pouco mais lento. Mas, em vez disso, foi muito mais rápido, como 0ms de latência média.

Então estou tentando aprender alguma coisa aqui. Parece que o hyper-v está enganando o SQLIO de alguma forma, mas eu não entendo bem o suficiente para descobrir isso.

É um vhd dinâmico, sem instantâneos ou qualquer coisa, e o vhd é o único arquivo no disco. O disco físico é na verdade um RAID 1 de duas unidades SAS.

    
por ScottStonehouse 06.07.2011 / 02:09

4 respostas

3

Eu sei que estou atrasado para a festa aqui, mas descobri que usar o SQLIO em discos dinâmicos gera resultados falsos. A razão por trás disso é que o arquivo tesfile.dat é apenas um arquivo zerado, portanto, o disco dinâmico é inteligente o suficiente para compactar esse arquivo nos bastidores, o que significa que ele caberá no cache de disco. Portanto, seu teste SQLIO é essencialmente apenas testar a velocidade do seu cache.

Tenho certeza de que isso está bem resolvido, mas tive dificuldade em encontrar a resposta quando estava testando, então achei que seria útil escrevê-la para referência futura:)

Stephen

    
por 27.09.2012 / 16:49
2

Sim, o Hyper-V está "enganando" o sqlio com o agrupamento de transações. A VM do SQL do Hyper-V Server não deve armazenar o banco de dados ou os logs em um VHD. Você deve usar um disco de passagem de algum tipo (incluído o iSCSI).

A Microsoft tem uma lista de diretrizes para SQL no Hyper-V e alguns detalhes na configuração de discos de passagem .

    
por 06.07.2011 / 03:01
0

Qual arquivo de teste de tamanho você está usando? Ao aumentar o tamanho do arquivo de teste (para vários gigabytes, talvez), você deve ser capaz de minimizar o efeito de armazenamento em cache.

    
por 06.07.2011 / 03:15
0

Mais diretamente, o tempo passa a taxas variáveis em uma máquina virtual. Em uma máquina física, há um cristal e um relógio batendo ciclos de precisão a uma taxa constante. O sistema operacional usa isso para informar a hora. Mas em uma máquina virtual, o relógio pode desacelerar e acelerar. O hipervisor decide quão rápido ou lento o relógio virtual é baseado na carga.

    
por 06.07.2011 / 05:14