Vou tentar resumir meus comentários em uma resposta. A linha básica é:
Você não deve mexer com o tamanho da faixa, a menos que tenha boas evidências de que isso beneficiará sua carga de trabalho.
Raciocínio:
- Para striping, você precisa escolher alguns tamanho da faixa e 64 KB é o padrão escolhido pelo fabricante. Como o fabricante (LSI, neste caso, renomeado pela Dell) tem muita experiência na execução de um grande número de configurações com diferentes níveis de RAID e cargas de trabalho, você pode confiar que eles escolheram sabiamente É provável que
- 64 KB corresponda aproximadamente ao tamanho médio de suas solicitações em um ambiente virtualizado (pelo menos muito mais do que 256 KB ou 1 MB) e, portanto, seja um bom compromisso entre latência e otimizações de tempo de busca 1 .
- previsões precisas baseadas em modelos sobre desempenho de aplicativos com tamanhos de faixa variados são quase impossíveis devido à natureza altamente variante das cargas de trabalho e à complexidade dos modelos, levando em consideração diferentes algoritmos de leitura antecipada e armazenamento em cache em diferentes camadas
Se você é do tipo que obtém essa evidência, pode fazê-lo executando sua carga típica e alguns dos cenários de carga atípicos com diferentes configurações de tamanho de faixa, reunindo os dados (desempenho do subsistema de E / S na camada Xen Server, o desempenho do servidor de back-end e os tempos de resposta na camada do aplicativo) e executá-lo por meio de uma avaliação estatística. No entanto, isso consumirá muito tempo e provavelmente não produzirá resultados inovadores, além de "Eu poderia ter deixado os valores padrão no final" , então eu consideraria um desperdício de recursos .
1 Se você assumir uma taxa de transferência de 100MB / s para um único disco, é bastante fácil ver que um Kilobyte leva em torno de 0,01ms para ler, portanto 64 KB terão uma leitura latência de 0,64ms. Considerando que o "tempo de serviço" médio de uma solicitação de E / S aleatória geralmente estará no intervalo de 5-10 ms, a latência de leitura é apenas uma pequena fração do tempo total de espera. Por outro lado, a leitura de 512 KB levará cerca de 5ms - o que será importante para o tipo de carga de trabalho "leitura pequena aleatória", reduzindo consideravelmente o número de IOPS que seu array será capaz de fornecer neste caso específico pelo fator de 1,5 2. Um cenário com operações de leitura grandes aleatórias simultâneas beneficiará à medida que leituras de bloco maiores induzirem buscas menos demoradas, mas é muito improvável que você veja esse cenário em um ambiente virtualizado.