Teste Raid0 para várias partições em uma única unidade gerou melhores velocidades de gravação sequenciais que esperavam

0

Obviamente, executar raid0 em partições de uma única unidade resultará em uma diminuição de desempenho; os dados devem ser escrito / lido várias vezes para / da mesma unidade, e por causa de como ele está espalhado, o cabeçote da unidade tem que voltar atrás. Eu tenho realizou um teste, mas não obteve os resultados esperados.

Não há como, no meu conhecimento, configurar o Windows para partições raid0, apenas unidades. Por isso eu usei um Máquina virtual do Windows XP com 5 unidades virtuais de 1GB conectadas, além da unidade do sistema operacional. Esses virtuais unidades foram hospedadas no mesmo disco rígido host para emular os efeitos de invadir partições na mesma unidade. Eu criei cada disco dinâmico e fiz um strip Janela é construída em equivalente a Raid0. Em seguida, anexei outro disco rígido virtual com 5 GB. Tanto o O array Raid0 de 5 GB e o drive de 5 GB foram formatados como NTFS com um tamanho de alocação de 64 kilobytes. Os arquivos do disco rígido virtual foram configurados para pré-alocar seu espaço.

Dado que existem 5 drives virtuais no array RAID, eu esperaria que ele tivesse cerca de 20% do desempenho da unidade não-raid para velocidade de leitura / gravação, exceto em gravações / leituras únicas, que devem estar próximas do normal.

Como você pode ver nas capturas de tela, as leituras sequenciais são aproximadamente as esperadas (17% -ish), mas as velocidades de gravação não são. As velocidades de gravação são significativamente maiores do que o esperado (33% --ish). Os resultados do teste são de uma corrida de 5 série escrevendo 4000MB de dados usando o Crystal DiskMark. A unidade host é um disco rígido externo usb 3.0.

Por que a velocidade de gravação sequencial na matriz de ataque é melhor que a esperada?

PS: Antes que alguém pergunte o que eu estou tentando alcançar, eu vou responder isso antes. Eu não estou tentando conseguir nada mais do que satisfação da minha curiosidade; não leia a questão mais profundamente do que foi escrito. :)

    
por Robin Hood 10.10.2014 / 07:34

1 resposta

1

O que você vê é o efeito combinado do enfileiramento inteligente e do armazenamento em cache : Os dados não são gravados fisicamente na unidade na mesma ordem em que o aplicativo os grava no SO , mas a reordenação e a combinação de gravação permitem uma distribuição muito melhor das gravações nas faixas. Isso é ajudado pelo cache interno da unidade.

Ao ler da unidade, o enfileiramento não pode realmente ajudar, mas o fato de você ver apenas uma redução de desempenho de 1: 5, onde uma penalidade maior seria esperada (com o 1: 5 para o striping, o as latências radial e rotaional devem sobrepor-se às leituras distribuídas em cargas de trabalho sequenciais) mostra que readahead funciona muito bem.

    
por 10.10.2014 / 08:30