Medindo o Paradoxo de Desempenho de I / O

3

Estou tentando descobrir a maneira correta de obter o desempenho do 'mundo real' do meu cluster NFS.

A exportação do NFS é montada em um hypervisor XEN e estou executando 'dd' de dentro de uma VM.

O que não consigo decidir é se devo usar O_DIRECT/O_SYNC ou não.

Se eu não vou usá-lo, o kernel fará o cache de páginas para a RAM, e eu vou acabar medindo Taxa de transferência de RAM, não de disco.

Por outro lado, a maioria dos aplicativos de servidor, se não todos, usarão o cache de RAM de qualquer maneira (estou errado com essa suposição?).

Então, eu me pergunto onde está o ponto de equilíbrio, o que realmente acontecerá no 'mundo real' ?

    
por BlackBeret 13.03.2012 / 21:03

2 respostas

3

Primeiro de tudo, eu usaria um utilitário real de benchmark de E / S como 'iozone'. Ele testará várias coisas e até usará O_DIRECT se for sinalizado para isso. E até, se bem me lembro, tem alguns sinalizadores específicos do NFS.

Uma coisa que eu acho muito confiável é usar um tamanho de arquivo que excede o tamanho da RAM do dispositivo que você está testando. Isso quebra o cache e fornece números de E / S confiáveis. Se você tiver uma máquina de 2 GB de RAM e testar em um arquivo de 4 GB, obterá números confiáveis. Se você usar um arquivo de 1 GB, mas usar o sinalizador O_DIRECT, obterá números um pouco diferentes devido ao aspecto "o relatório somente comprometido quando informado de que é O_DIRECT".

Isso fica complicado quando o destino do sistema de arquivos de rede também tem um cache de blocos, então você pode precisar dimensionar seu teste para eliminar o esse cache em vez do seu cache Xen local.

    
por 13.03.2012 / 21:27
2

Isso depende apenas do que você deseja medir.
Você acabou de se esquecer de definir seu objetivo.

Se você quiser as performances brutas do cluster NFS, você deve ignorar sua RAM.
Se você quer performances do "mundo real", então você tem que usar sua memória RAM. Mas o mundo real I / O raramente são aqueles de dd. Você terá melhores resultados com o iozone, por exemplo.

Portanto, defina seu objetivo.
Em seguida, escolha a ferramenta e o método adequados.

    
por 13.03.2012 / 21:26