6.2. Análises
O ajuste do desempenho de pilha de armazenamento requer um conhecimento de como os dados fluem através do sistema, assim como conhecimento profundo dos armazenamentos adjacentes e como ele funciona sob cargas de trabalho que variam. Isto também requer um conhecimento do próprio ajuste da carga de trabalho
Sempre que você implantar um novo sistema, é uma boa idéia analisar o armazenamento de baixo para cima. Inicie com LUNs e discos brutos e avalie seus desempenhos utilizando E/S direta que cruza o cache da página do kernel). Isto é o teste mais básico que você pode realizar e será padrão pelo qual você medir o desempenho de E/S na pilha. Inicie com um gerador de carga de trabalho básica (tal como o aio-stress) que produz leituras e gravações aleatórias e sequenciais em toda a variedade de tamanhos da E/S e profundidade de fila.
Segue abaixo um gráfico das séries de execuções aio-stress, cada qual desempenhando quatro estágios: gravações sequenciais, leituras sequenciais, gravações aleatórias e leituras aleatórias. Neste exemplo, a ferramenta é configurada para executar na classe de tamanho de histórico (o x axis) e profundidade de fila (uma por gráfico). A profundidade da fila representa o número total de operações de E/S em progresso em um determinado período.
Figura 6.1. aio-stress output for 1 thread, 1 file
Note como a linha produtividade tem a tendência do canto esquerdo inferior para o direito superior. Também note que, para um dado tamanho de histórico, você pode obter mais produtividade do armazenamento aumentando o número de E/S em progresso.
Ao executar essas cargas de trabalho simples em seu armazenamento, você compreenderá como o seu armazenamento realiza sob carga. Mantenha os dados gerados por esses testes de comparação quando analisar as cargas de trabalho mais complexos.
Se você utilizar mapeador de dispositivo ou md, adicione para a camada no próximo e repita os testes. Se houver uma grande perda de desempenho, assegure-se que ele é esperado, ou que pode ser explicado. Por exemplo, uma queda de desempenho pode ser esperada se uma camada de checksumming raid for adicionada à pilha. Trava inesperada no desempenho inesperado pode ser causada por operações de E/S desalinhadas. Por padrão, o Red Hat Enterprise Linux alinha partições e metadados do mapeador de dispositivo adquadamente. No entanto, nem todos os tipos de armazenamento reportam seus alinhamentos adequados, e por isso pode exigir um ajuste manual.
Após adicionar o mapeador de disposibito ou camada md, adicione o sistema de arquivo em cima do dispositivo de bloco e teste nele, ainda utilizando a E/S direta. Compare resultados com os testes anteriores e assegure-se de que você entende as discrepâncias. E/S de Gravações diretas geralmente funciona melhor em arquivos pré-alocados, para assegurar que você pré-alocou arquivos antes de testar o desempenho.
Geradores de carga de trabalho sintéticos que você pode achar úteis incluem:
- aio-stress
- iozone
- fio